说我有这样的单词列表:mouse,abba,roar,accent
我需要一个匹配鼠标和咆哮的正则表达式,但不需要abba或重音,因为最后两个具有连续的重复字符(bb和cc)。
我设法提出以下模式,仅匹配单词WITH double连续字符:
.*(.)\1.*
然而,我需要的却恰恰相反,但我很难将其反转。
答案 0 :(得分:7)
您可以使用:
\b(?:([a-z])(?!\1))+\b
它使用负向前瞻(?!..)
,它测试每个捕获本身不会被跟踪。为了确保模式在单词结束之前没有剪切单词或在单词的中间开始,我在每一侧添加了单词边界\b
。
另一种方式:
(?![a-z]*([a-z])\1)\b[a-z]+\b
答案 1 :(得分:4)
您可以使用这个基于前瞻性的正则表达式:
^(?:(.)(?!\1))*$