关于 Java 正则表达式模式的一个简单问题!所以说如果我有一个像这样的方法..
public void example()
{
Pattern p = Pattern.compile("\\d*");
Matcher m = p.matcher("ab34ef");
boolean b = false;
while (b = m.find())
{
System.out.println(m.start() + " " + m.group());
}
}
如果我运行这个,我最终会得到以下输出..
0
1
2 34
4
5
6
我明白这是如何工作的,除了它如何在 6 处结束之外,我认为它会在 5 处结束,有人可以向我解释一下吗?谢谢!
最佳答案
在字符串 "ab34ef"
中,有 7 个“空字符”,其值为 ""
。它们位于每个正常字符之间。它尝试从每个空字符开始查找匹配项,而不是从每个普通字符开始;即以下每个 |
的位置:"|a|b|3|4|e|f|"
。
关于Java正则表达式模式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955951/