例如,使用该模式:
[a-z]{2}
在字符串bcd
中,唯一的匹配项是[bc]
。相反,我想得到[bc, cd]
。
重复使用Matcher.find(int start)
和Matcher.start()
,以找出下一个要查找的字符串索引。
String haystack="bcd";
Matcher m = pattern.matcher(haystack);
int lookIndex=0;
while(lookIndex < haystack.length() && m.find(lookIndex)) {
lookIndex=m.start()+1;
System.out.println("Found " + m.group());
}
(?=([a-z]{2})).
Matcher.find
并且每次使用group(1)
查询匹配器以获取您的匹配项。主要正则表达式匹配本身是无关紧要的,应该被忽略。.
不会防止匹配只包含最后一个字符的情况吗? - escitalopram
aaa
和正则表达式a*
,在索引0处可能有4个匹配项。Marko Topolnik的答案涵盖了您想要在每个索引处最多获取1个匹配项的情况。 - nhahtdh