读书人

关于正则表达式匹配的有关问题想问问

发布时间: 2013-09-05 16:02:06 作者: rapoo

关于正则表达式匹配的问题,想问问大家
最近在学Java,刚看到Java中的正则表达式,然后看到书中的一个例子不是太了解,想请教一下大家,先上代码吧!


import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class FindGroup {
private static int count;
public static void main(String[] args){
Matcher m = Pattern.compile("\\w+").matcher("Java isn't easy!");
//Matcher m = Pattern.compile("\\w+").matcher("Java is very easy!");
while(m.find()){
count++;
System.out.println(m.group());
}
System.out.println(count);
}
}

该程序的打印结果是:
Java
isn
t
easy
4
我注释掉的那一句打印结果是:
Java
is
not
easy
4
问题就是我并不太明白为什么会输出这样的结果,首先我认为\w是匹配单个字符或者数字和下划线的,由于后面还有一个+号,所以可以匹配多个字符或者数字,当遇到第一个空格的时候就该停止匹配了,所以应该输出Java,但是后来看了一下发现\w书上的解释是匹配单词的,那么我想问如何匹配单词,匹配单词的时候空格没有影响吗,遇到什么才会停止匹配呢?

希望知道的回答一下,先谢谢了。 正则表达式 java 单词匹配
[解决办法]
\w 单词字符:[a-zA-Z_0-9]
遇到空格就会断开
isn't '不会匹配\w
Java is very easy! 那来的not?

读书人网 >J2SE开发

热点推荐