【发布时间】:2015-12-28 00:23:39
【问题描述】:
我正在尝试这个挑战:
我想匹配所有不包含 ABBA 模式的字符串。
匹配:
aesthophysiology
amphimictical
baruria
calomorphic
不匹配
anallagmatic
bassarisk
chorioallantois
coccomyces
abba
首先,我有一个正则表达式来确定 ABBA 模式。
(\w)(\w)\2\1
接下来我要匹配不包含该模式的字符串:
^((?!(\w)(\w)\2\1).)*$
然而这符合一切。
如果我通过为负前瞻指定文字来简化这一点:
^((?!agm).)*$
正则表达式与字符串“anallagmatic”不匹配,这是所需的行为。
所以看起来问题出在我在负前瞻中使用捕获组和反向引用。
【问题讨论】:
标签: regex regex-negation regex-lookarounds backreference capturing-group