在前瞻组之后有任何意义吗?

时间:2014-12-26 15:16:33

标签: regex lookahead

我无法想象c中的a(?=b)c将如何发挥作用,但在互联网上搜索时,我发现没有任何反对此模式的内容。如果此表达式与任何内容都不匹配,那么(a(?=b)){N}也不是,对于N> 1,对吧?

1 个答案:

答案 0 :(得分:2)

是的 - 您的模式无法匹配。所以呢?我也可以编码:

if (i == 1 && i == 2)

它编译得很好,也永远不会成真。

编译器通常只关注语法和语法,而不是逻辑正确性。正则表达式也不例外。

然而,要回答你提出的问题,"为什么在前瞻后会有模式",是的,当前瞻有可变长度时它确实有意义,例如:

a(?=.*b)[a-c]+

这里的展望声称有一个" b" 某处提前。