读书人

还是正则表达式的有关问题

发布时间: 2011-12-01 22:07:01 作者: rapoo

还是正则表达式的问题
刚才发为自己明白了 做了一个实验发现自己还是不明白
import java.util.regex.*;
class shiyan
{

public static void main(String args[])
{
String s1= "wufangdong12489dna ";

Pattern pattern=Pattern.compile( "\\w+\\d+\\w+ ");
Matcher matcher=pattern.matcher(s1);

while(matcher.find())
{
System.out.println(matcher.group());
}
}
}


上面这些代码 为什么只会输出wufangdong12489dna?

ufangdong12489dna fangdong12489dna这样的难道就不符合这个表达式么?

还有我把( "\\w+\\d+\\w+ ");改成( "\\w+(\\d+)\\w+ "); 再把group()改成group(1)为啥只输出9? 别的数字呢?

各位老大们 请别回“看api” 我是看了才上来问滴 要是看懂了我就不上来问了。
谢谢回答!

[解决办法]
至于为什么输出9,是因为\\w匹配了前面几个数字,但是为了匹配整个正则式,9就留给\\d+去匹配了
"(\\w+)(\\d+)(\\w+) "输出group(1)/group(2)/group(3)看看结果

读书人网 >J2SE开发

热点推荐