例如,我想排除'拟合','空心','万亿'
而不是'你好'或'模式'
我已经有了以下工作
(.)(.)\2\1
Run Code Online (Sandbox Code Playgroud)
它匹配'空心'或'适合',但我无法否定这一点.
我得到的最接近的是
^.(?!(.)(.)\2\1)
Run Code Online (Sandbox Code Playgroud)
不包括"拟合"和"空心"但不包括"万亿"
它与你所拥有的有点不同。您当前的正则表达式将检查第二个字符的回文性(?)。由于您想检查整个字符串,因此需要将其稍微更改为:
^(?!.*(.)(.)\2\1)
Run Code Online (Sandbox Code Playgroud)
第一个锚点将确保仅在开头进行检查(否则,正则表达式可以在字符串末尾声明匹配)。
然后,.*否定前瞻内的检查将能够在字符串内的任何位置进行检查。如果有任何匹配,则整场比赛失败。