java - 匹配具有双字母的单词

标签 java regex

我正在使用

^(?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/

相关文章:

regex - 如何清除工作表中除偶数位置逗号之外的所有逗号?

javascript - 密码的正则表达式,规则很少

regex - Vim:我如何搜索后面没有另一个词的词?

java - 将 Java 程序的多个输出传送到多个文件

java - 在java应用程序中使用js和css(嵌入式浏览器功能)

java - 用于从 Java 生成 Word 文档的 xsl 样式表

JAVA用swt画线不删除之前的线

java - XStream 将属性值返回为 null

javascript - 为什么我的正则表达式中缺少一个字符?

regex - 引用-此正则表达式是什么意思?