import java.util.regex.*;
class Regex2}{
public static void main(String[] args){
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matchar(args[1]);
boolean b = false;
while(b = m.find()){
System.out.print(m.start()+m.group());
}}
}java Regex2 "\d*" ab34efwhat is the result?
A.234
B.334
C.2334
D.0123456
E.01234456
F.12334567
G.Compulation fails
为什么选择E啊
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
boolean b = false;
while (b = m.find()) {
//这样输出让你看的明确一些
//每次find呢,m.start会输出匹配序列的开头。那么为什么开头分别是0,1,2,4,5,6呢
//因为你的正则表达式是\d*,关键在*,可以是空序列的
System.out.println("start:"+m.start()+" group:"+(m.group().equals("")?"空":m.group()));
}
}
}