我正在使用
^(?i)(?=.*\bWORD_TO_MATCH\b).*$
我还需要匹配具有双字母的单词... 例如:
“Matthew Jonson”与
匹配^(?i)(?=.*\bmatthew\b)(?=.*\bjonson\b).*$
但是“Mathew Jonson”没有
另一个例子:
ABA 应匹配 (regex\ABA\) 和 (regex\ABBA\)
如何使正则表达式“双字母不敏感”?
最佳答案
您可以使用 back reference :
(.)\1
(.)
将任何字符之一捕获到捕获组1
中。如果上一个匹配项再次出现,则 \1
匹配。
如果您不关心任何字符但字母使用:
([A-Za-z])\1
查找包含双字母的单词的最终正则表达式应如下所示:
\b.*([A-Za-z])\1.*\b
您可以在线测试:http://fiddle.re/u4ar46
关于java - 匹配具有双字母的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778612/