读书人

Java正则表达式,该如何处理

发布时间: 2012-01-15 22:57:49 作者: rapoo

Java正则表达式
String source = "My name is Java. I send Hello Java. Echo Request!";


String[] result2 = source.split("Java.\\s*(?!I send)");


for(String line:result2){

System.out.println(line);

}
为啥结果是
My name is
I send Hello
Echo Request!

第一个Java. 应该不匹配上啊,因为我不允许其后边是 "几个空格+I send"啊

[解决办法]
"Java.\\s(?!I send)"
[解决办法]

探讨

为什么 \\s可以\\s*不可以

[解决办法]
探讨

为什么 \\s可以\\s*不可以

[解决办法]
探讨

[Quote=引用:]

哇。高手啊。
意思就是说,这种(?!I send)是在匹配上的第一下的位置也就是 Java.的地方,就去环视,环视发现只要没有跟着I send就OK了? 我这个 \\s* 是匹配所有空白啊,为啥不是 "Java. "这个Java.\\s* 匹配完毕再去环视呢? 不是尽最大力量的匹配么?

读书人网 >Java相关

热点推荐