如何在字符串中找到至少两次出现的任意两个字母对而不重叠?
例如,在字符串' adjkoedjeoieadkkji
'我应该找到ad
,因为它发生了两次。
在字符串' adjkobbbeoieadkkji
'我不应该找到bb
因为两次出现重叠。
我已尝试使用/^([a-z]{2}).*(\1)$/
仅匹配' abab
'
仍在尝试从我身边请帮助我的正则表达式专家
答案 0 :(得分:1)
答案 1 :(得分:0)
这应该可以解决问题:
public static final Pattern REGEX = Pattern.compile("((\\w\\w))(?=.*\\1)");
public static void main(String[] args) throws Exception {
String s = "adjkoedjeoieadddkkji";
Matcher m = REGEX.matcher(s);
while (m.find()) {
System.err.println(m.group());
}
}
仅打印:
ad
重叠ddd
不匹配。