gpt4 book ai didi

regex - 什么(?: do in a regular expression

转载 作者:行者123 更新时间:2023-12-03 13:54:00 27 4
gpt4 key购买 nike

我遇到了一个我不完全理解的正则表达式 - 有人可以帮我破译它吗:

^home(?:\/|\/index\.asp)?(?:\?.+)?$

它用于 url 匹配,上面的示例匹配以下 url:
home
home/
home/?a
home/?a=1
home/index.asp
home/index.asp?a
home/index.asp?a=1

在我看来,括号内的问号 (?:什么都不做。有人可以启发我。

所使用的正则表达式版本是 Classic ASP 提供的版本,如果有帮助的话,它正在服务器上运行。

最佳答案

(?:)创建一个非捕获组。它将事物组合在一起而不创建反向引用。

反向引用是您可以在表达式中引用的部分或可能的替换(通常通过说 \1$1 等 - 取决于风格)。在编程语言中使用正则表达式时,您通常也可以在之后从匹配中提取它们。使用的唯一理由 (?:)是为了避免创建新的反向引用,从而避免增加组号,并节省(通常可以忽略的)内存

关于regex - 什么(?: do in a regular expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138161/

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