Regex 在前瞻小组之后有什么意义吗?

Regex 在前瞻小组之后有什么意义吗?,regex,lookahead,Regex,Lookahead,我无法想象a(?=b)c中的c是如何工作的,但我在互联网上搜索时没有发现任何与此模式相反的东西。如果这个表达式不匹配任何东西,那么对于N>1,也不匹配(a(?=b)){N},对吗?是-您的模式不可能匹配。那又怎么样?我也可以编写代码: if (i == 1 && i == 2) 它会编译得很好,也永远不会是真的 编译器通常只关心语法和语法,而不关心逻辑正确性。正则表达式也不例外 然而,为了回答您暗示的问题“为什么在前瞻之后有模式”,是的,当前瞻具有可变长度时,它确实有意义,例如

我无法想象
a(?=b)c
中的
c
是如何工作的,但我在互联网上搜索时没有发现任何与此模式相反的东西。如果这个表达式不匹配任何东西,那么对于N>1,也不匹配
(a(?=b)){N}
,对吗?

是-您的模式不可能匹配。那又怎么样?我也可以编写代码:

if (i == 1 && i == 2)
它会编译得很好,也永远不会是真的

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

然而,为了回答您暗示的问题“为什么在前瞻之后有模式”,是的,当前瞻具有可变长度时,它确实有意义,例如:

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

这里的“展望”断言前方某处有一个“b”。

是的,怎么了?就像你的
c(?)?