例如,我想排除“拟合”、“空心”、“万亿”
但不是“你好”或“模式”
我已经有了以下工作
(.)(.)\2\1
匹配“空心”或“拟合”,但我无法否定这一点。
我得到的最接近的是
^.(?!(.)(.)\2\1)
不包括“拟合”和“空心”但不包括“万亿”
最佳答案
它与您拥有的略有不同。您当前的正则表达式将检查第二个字符的回文性 (?)。由于要检查整个字符串,因此需要将其稍微更改为:
^(?!.*(.)(.)\2\1)
第一个 anchor 将确保仅在开头进行检查(否则,正则表达式可以在字符串的末尾声明匹配项)。
然后是
.*
在负前瞻中将使检查能够在字符串内的任何地方完成。如果有任何匹配,则整个匹配失败。
关于regex - 排除模式 "abba"的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882253/