gpt4 book ai didi

javascript - 之间的区别? :, ?!和?=

转载 作者:IT王子 更新时间:2023-10-29 02:47:52 26 4
gpt4 key购买 nike

我搜索了这些表达式的含义,但无法理解它们之间的确切区别。

他们是这样说的:

  • ?: 匹配表达式但不捕获它。
  • ?= 匹配后缀但将其排除在捕获之外。
  • ?! 如果后缀不存在则匹配。

我尝试在简单的 RegEx 中使用它们并得到了相似的结果。

例如:下面的 3 个表达式给出了非常相似的结果。

  • [a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?!\.[a-zA-Z0-9]+)*
  • [a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?=\.[a-zA-Z0-9]+)*
  • [a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9]+)*

最佳答案

?=?! 的区别在于前者要求给定的表达式匹配,后者要求匹配.例如 a(?=b) 将匹配“ab”中的“a”,但不匹配“ac”中的“a”。而 a(?!b) 将匹配“ac”中的“a”,但不会匹配“ab”中的“a”。

?:?= 的区别在于 ?= 从整个匹配中排除表达式,而 ?: 只是不创建捕获组。因此,例如 a(?:b) 将匹配“abc”中的“ab”,而 a(?=b) 将仅匹配“中的“a”美国广播公司”。 a(b) 将匹配“abc”中的“ab”创建包含“b”的捕获。

关于javascript - 之间的区别? :, ?!和?=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10804732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com