关于正则表达式空格的问题.

2019-03-25 13:46|来源: 网路

羡慕的代码我测试过了,问题出在\\s-\\s-\\s上,但是不知道为什么错啦....求指教!
private String testStr = "58.61.164.141 – - [22/Feb/2010:09:51:46 +0800] “GET / HTTP/1.1″ 206 6326 ” ";
private String regex="([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\\s-\\s-\\s\\[([^\\]]+)\\]";


问题补充:我需要的是将iP地址和时间(也就是[]里面的信息)提取出来.大家有什么好的方法吗

问题补充:
beneo 写道
我觉得你要group把

\\s-\\s-\\s
换成\\s\\-\\s\\-\\s

后面的[([^\\]]+)\\]

你想group什么出来??

22/Feb/2010:09:51:46 +0800 哪个部分?还是[22/Feb/2010:09:51:46 +0800]

不太明白你的意思!可以讲得详细的些吗

相关问答

更多
  • 1. 比方说我需要判断一个串是不是一个邮箱,你需要判断它是是不是由字母数字下划线组成,还包含一个@,且只有一个@,而且这个@不能在最前最后,串的最后面需要以.com来结尾,而且这个.com还不能紧跟在@后面,balabala一大堆的规则,这么多要是用if来判断实在是太麻烦了吧。 2. 那么你写一个正则表达式可以一下子定义完所有的规则,我写一个简单的判断是否为邮箱的正则 ^[\da-zA-Z_]+@[\da-zA-Z_]+.com$, \d表示一个数字,a-zA-Z表示52个大小写的英文字母[\da-zA-Z ...
  • 另:建议你找点正则表达式的资料看一下。30分钟入门 http://deerchao.net/tutorials/regex/regex.htm在线测试表达式 http://www.zhongguosou.com/computer_question_tools/test_regex.aspx
  • 楼上的正解.. 一般实作的时候,也是先对字串去空格,然后再判断其是否为空. 下面是我写的另一种实现方式,直接用正则表达式进行判断的..跟楼上的比,就只是代码有所不同吧,基本原理应该还是一样的.