我真的很努力解决这个问题:
import java.util.regex.*;
class Regex2 {
public static void main(String[] args) {
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
boolean b = false;
while(b = m.find()) {
System.out.print(m.start() + m.group());
}
}
}
当使用以下命令运行上述程序时:
java Regex2 "\d*" ab34ef
它输出01234456
. 我真的不明白这个输出。考虑每个字符的以下索引:
a b 3 4 e f
^ ^ ^ ^ ^ ^
0 1 2 3 4 5
输出不应该是0123445
吗?
我一直在阅读,看起来 RegEx 引擎也会读取字符串的结尾,但我就是不明白。如果有人可以提供有关如何获得该结果的分步指南,将不胜感激。即它是如何找到每个数字的。