正则表达式匹配除包含特定模式的单词之外的所有单词

时间:2015-01-25 19:05:04

标签: regex word-list

假设我有两个单词列表,我必须匹配第一个列表中的所有字词,而第二个列表即可。现在假设第二个列表中的所有单词(那些匹配的单词)包含特定模式: character1 后跟 character2 然后 character2 character1 。例如,它包含诸如" abba"," otto","万亿","不适合"等等。

我可以使用正则表达式(\w)(\w)\2\1轻松匹配此模式。为了匹配第二个列表中的所有单词,我可以使用\w*(\w)(\w)\2\1\w*。但除了包含这种模式的单词之外,我如何匹配所有单词呢?

我尝试的其中一件事是(?!\w*(\w)(\w)\2\1\w*),但由于某种原因,它也匹配第二个列表中第一个和第二个字符之间的转换。我知道我做错了什么,但我无法弄清楚是什么。

1 个答案:

答案 0 :(得分:1)

ZeronCasimir et Hippolyte

获得有效的解决方案
  

\b(?!\w*(\w)(\w)\2\1)\w+可以完成这项工作,因为单词边界确保您从开头测试一个单词。 - Casimir et Hippolyte 1月25日19:10