gpt4 book ai didi

regex - 正则表达式 : how to interpret *?

转载 作者:行者123 更新时间:2023-12-01 11:06:18 26 4
gpt4 key购买 nike

我知道 *? 是什么。
但是,我不明白*?是什么。我知道它用于使“贪婪”* 运算符成为惰性运算符,但是,如果 *零次或多次,那将如何读取?一次或一次

谢谢。

编辑:我强调我知道什么是 *?greedylazy

最佳答案

这是一种用于扩展正则表达式语法而不添加更多特殊字符的技巧。当然,在“零个或多个”之后说“零个或一个”是没有意义的……所以组合 *?应该被理解为一个单一的标记,意思是“零个或多个 - 不贪婪”。以类似的方式+?应该被理解为一个单一的标记,意思是“一个或多个 - 不贪婪”。

贪婪永远不会改变匹配的字符串和不匹配的字符串,但它可能会改变找到的匹配项。例如 (AB*?)B+ 的第 1 组火柴AABBBBB ,但第 1 组 (AB*)B+火柴ABBBB在同一个字符串中。

“奇怪的地方”中的问号也被用在其他特殊组合中,这些组合在几个正则表达式引擎中可用,例如:

(?=...)     zero-width positive lookahead assertion
(?!...) zero-width negative lookahead assertion
(?:...) non-tagging group

如您所见,它们都以 (? 开头显然问号不能表示“零或一”(我们在表达式的开头,零或什么之一?)。

关于regex - 正则表达式 : how to interpret *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558775/

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