非常快速和简单的问题。
考虑字符串向量(“AvAv”,“AvAvAv”)
为什么模式(Av)\ 1([^ A] | $)匹配两个字符串?
模式显示有“Av”的意思,有另一个,然后 要么 有一个不是“A”的字符 或否则 即将结束。第一个字符串清楚地匹配,后者我不知道它是如何做的。它有两个副本“Av”,但它没有结束(缺少第二个析取),并且没有跟随“A”以外的一个特征(缺少第一个析取),那么模式如何成功匹配呢?
非常感谢你的时间和帮助。非常感谢。
答案 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}}
这样第二个就不会匹配了。