gpt4 book ai didi

regex - “.+”和 “.+?”之间的区别

转载 作者:行者123 更新时间:2023-12-03 11:47:37 25 4
gpt4 key购买 nike

有人可以解释.+.+?之间的区别

我有字符串:"extend cup end table"

  • 模式e.+d发现:extend cup end
  • 模式e.+?d发现:extendend

  • 我知道 +是一个或多个,而 ?是一个或零。
    但是我不明白它是如何工作的。

    最佳答案

    两者都将匹配一个或多个字符的任何序列。区别在于:

  • .+很贪心,它会消耗尽可能多的字符。
  • .+?很不情愿,它会消耗尽可能少的字符。

  • 请参阅Java教程中的 Differences Among Greedy, Reluctant, and Possessive Quantifiers

    从而:
  • e.+d查找最长的子字符串,该子字符串以e开头,以d结尾(并且中间至少包含一个字符)。在您的示例中,将找到extend cup end
  • e.+?d查找最短的此类子字符串。在您的示例中,extendend是两个此类不重叠的匹配项,因此可以找到两者。
  • 关于regex - “.+”和 “.+?”之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213848/

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