正则表达式否定了性格脱节

时间:2018-01-10 03:54:33

标签: regex

非常快速和简单的问题。

考虑字符串向量(“AvAv”,“AvAvAv”)

为什么模式(Av)\ 1([^ A] | $)匹配两个字符串?

模式显示有“Av”的意思,有另一个,然后 要么 有一个不是“A”的字符 或否则 即将结束。第一个字符串清楚地匹配,后者我不知道它是如何做的。它有两个副本“Av”,但它没有结束(缺少第二个析取),并且没有跟随“A”以外的一个特征(缺少第一个析取),那么模式如何成功匹配呢?

非常感谢你的时间和帮助。非常感谢。

2 个答案:

答案 0 :(得分:0)

以下是解释:

Av

在这种情况下,我们可以匹配$,然后匹配捕获的数量,然后匹配来自替换的AvAvAv。在AvAvAv - again matches (Av)\1$ ^^^^ last four letters match 的情况下,我们也有匹配:

Av

这里的逻辑是相同的,除了为了匹配,我们必须跳过第一个^(Av)\1([^A]|$)

如果模式为AvAv,则只有^才匹配。

答案 1 :(得分:0)

RegEx只需匹配字符串的一部分即可视为“匹配”。

换句话说,您的RegEx与此部分匹配:

  

平均的 AVAV

第二个例子。

如果您不希望它与第二个匹配,请使用插入符^(Av)\1([^A]|$)

{{1}}

这样第二个就不会匹配了。