Javascript 如果(?:foo)已经存在,那么正则表达式中(?=foo)的意义是什么?

Javascript 如果(?:foo)已经存在,那么正则表达式中(?=foo)的意义是什么?,javascript,regex,Javascript,Regex,我正在阅读,注意到不需要正则表达式特性x(?=y),因为您可以只编写x(?:y),它也可以做同样的事情 它只有在后跟y时才与x匹配,并且不会在结果中捕获y 我错了吗?这两者有区别吗?这个(?=)是一个“X,通过零宽度正向前瞻”。(?:)是非捕获组 根据使用正则表达式的方法(匹配与查找等),与正向前瞻匹配的结果可能不会包含在匹配结果中,其中非捕获组仍将包含在匹配结果的[0]组中。是的,您错了(?:y)将使用该字符,而(?=y)仅检查以后是否有y,但不使用它,因此可以进行其他检查,例如 啊。我认为[

我正在阅读,注意到不需要正则表达式特性
x(?=y)
,因为您可以只编写
x(?:y)
,它也可以做同样的事情

它只有在后跟y时才与x匹配,并且不会在结果中捕获y

我错了吗?这两者有区别吗?

这个
(?=)
是一个“X,通过零宽度正向前瞻”。
(?:)
是非捕获组


根据使用正则表达式的方法(匹配与查找等),与正向前瞻匹配的结果可能不会包含在匹配结果中,其中非捕获组仍将包含在匹配结果的
[0]
组中。

是的,您错了
(?:y)
将使用该字符,而
(?=y)
仅检查以后是否有y,但不使用它,因此可以进行其他检查,例如

啊。我认为[0]字段没有意义。谢谢