假设我有两个单词列表,我必须匹配第一个列表中的所有字词,而第二个无列表即可。现在假设第二个列表中的所有单词(那些不匹配的单词)包含特定模式: character1 后跟 character2 然后 character2 和 character1 。例如,它包含诸如" abba"," otto","万亿","不适合"等等。
我可以使用正则表达式(\w)(\w)\2\1
轻松匹配此模式。为了匹配第二个列表中的所有单词,我可以使用\w*(\w)(\w)\2\1\w*
。但除了包含这种模式的单词之外,我如何匹配所有单词呢?
我尝试的其中一件事是(?!\w*(\w)(\w)\2\1\w*)
,但由于某种原因,它也匹配第二个列表中第一个和第二个字符之间的转换。我知道我做错了什么,但我无法弄清楚是什么。
答案 0 :(得分:1)
\b(?!\w*(\w)(\w)\2\1)\w+
可以完成这项工作,因为单词边界确保您从开头测试一个单词。 - Casimir et Hippolyte 1月25日19:10