刚才发为自己明白了 做了一个实验发现自己还是不明白
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)看看结果