代码如下:
import java.util.regex.*;
public class RegEx {
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d*");
Matcher m = p.matcher("ab56ef");
System.out.println("Pattern is " + m.pattern());
while (m.find()) {
System.out.print("index: " + m.start() + " " + m.group());
}
}
}
结果是:
index: 0 index: 1 index: 2 56 index: 4 index: 5 index: 6
因为“ab34ef”的长度是6,所以字符串的最高索引是5。
为什么索引6有匹配项?提前谢谢!你知道吗
返回了6个索引,因为这里有6个匹配项,因为
\d*
可以匹配空字符串。在输入字符串的每个字符之前总是有一个空字符串,因为regex引擎在每个位置处理文本,寻找边界或特定字符。你知道吗这里是visualization:
在这里,引擎检查字符串的开头,并说:“我看不到数字,但我可以返回一个匹配,因为数字的数量可以是0”。它返回匹配的空字符串,并继续
b
。以此类推,直到字符串结束。你知道吗如果需要查找所有数字,只需使用
+
量词和\d
速记类。你知道吗见IDEONE demo
相关问题 更多 >
编程相关推荐