在java中使用regex进行模式搜索
当我使用案例1时,输出是024。但是,当我使用案例2时,输出是1,但我预期是13。那么,请大家解释一下,在java中使用regex进行模式搜索,java,regex,pattern-matching,matcher,Java,Regex,Pattern Matching,Matcher,当我使用案例1时,输出是024。但是,当我使用案例2时,输出是1,但我预期是13。那么,请大家解释一下,regex中是否存在导致此输出的异常规则。那么,我为什么得到这个输出 谢谢你的帮助 注意:案例1和案例2是独立使用的 匹配使用输入,因此在上一个匹配结束后会找到下一个匹配: “bab”匹配器指针在每次匹配前的位置为: |阿巴巴 abab|aba 对于案例2: 因为它在搜索“ BAB < /代码>之后,它不会考虑已经搜索过的字符(在这种情况下,在索引3中),因此只能得到1。 public sta
regex
中是否存在导致此输出的异常规则。那么,我为什么得到这个输出
谢谢你的帮助
注意:案例1和案例2是独立使用的 匹配使用输入,因此在上一个匹配结束后会找到下一个匹配:
“bab”匹配器指针在每次匹配前的位置为:
|阿巴巴
abab|aba
因为它在搜索“<代码> BAB < /代码>之后,它不会考虑已经搜索过的字符(在这种情况下,在索引3中),因此只能得到1。
public static void main(String args[]) {
Pattern p = Pattern.compile("ab"); // Case 1
Pattern p = Pattern.compile("bab"); // Case 2
Matcher m = p.matcher("abababa");
while(m.find()){
System.out.print(m.start());
}
}
Input: abababa
Search for bab,
find's a match starting at index 1 and ending at index 3, next the search would start at index 4(aba)