我无法想象c
中的a(?=b)c
将如何发挥作用,但在互联网上搜索时,我发现没有任何反对此模式的内容。如果此表达式与任何内容都不匹配,那么(a(?=b)){N}
也不是,对于N> 1,对吧?
答案 0 :(得分:2)
是的 - 您的模式无法匹配。所以呢?我也可以编码:
if (i == 1 && i == 2)
它编译得很好,也永远不会成真。
编译器通常只关注语法和语法,而不是逻辑正确性。正则表达式也不例外。
然而,要回答你提出的问题,"为什么在前瞻后会有模式",是的,当前瞻有可变长度时它确实有意义,例如:
a(?=.*b)[a-c]+
这里的展望声称有一个" b" 某处提前。