regex - 排除模式 "abba"的字符串

标签 regex

例如,我想排除“拟合”、“空心”、“万亿”
但不是“你好”或“模式”

我已经有了以下工作

(.)(.)\2\1

匹配“空心”或“拟合”,但我无法否定这一点。

我得到的最接近的是
^.(?!(.)(.)\2\1)

不包括“拟合”和“空心”但不包括“万亿”

最佳答案

它与您拥有的略有不同。您当前的正则表达式将检查第二个字符的回文性 (?)。由于要检查整个字符串,因此需要将其稍微更改为:

^(?!.*(.)(.)\2\1)

第一个 anchor 将确保仅在开头进行检查(否则,正则表达式可以在字符串的末尾声明匹配项)。

然后是.*在负前瞻中将使检查能够在字符串内的任何地方完成。如果有任何匹配,则整个匹配失败。

关于regex - 排除模式 "abba"的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882253/

相关文章:

html - Dreamweaver 中的 RegEx 查找/替换 - 将 HTML 粘贴为变量?

javascript - 为什么在我尝试替换 @mention 时正则表达式不起作用?

java - 正则表达式: match everything except *. TMP

regex - TCL/EXPECT中正则表达式的含义

regex - 如何将 ssh 与包含正则表达式的命令一起使用?

使用 RegEx 解析大字符串时出现 java.lang.StackOverflowError

javascript - '|'是什么(竖线字符)表示正则表达式?

javascript - 提取两个字符之间的文本

Java - 转义字符串以防止 SQL 注入(inject)

java - 从文本中删除除 <br> 之外的所有 HTML 标签?