gpt4 book ai didi

javascript - 为什么非贪婪 Angular 色不行动 'non-greedy' ?

转载 作者:行者123 更新时间:2023-12-02 17:28:27 25 4
gpt4 key购买 nike

我正在 JavaScript 中使用正则表达式。

我有这个正则表达式:/\/.+?$/

这个字符串:/path/to/file

我期望得到 /file 作为结果,但是却得到了整个字符串。我在这里不明白什么? ? 应该使 + 非贪婪,这意味着它将匹配尽可能少的字符。

最佳答案

正则表达式将始终尝试从左到右匹配。即使 .+? 是非贪婪的,如果可能的话,正则表达式仍会尝试从字符串的开头进行匹配,并且仅在匹配失败时才前进起始位置。

您有几个选项可以解决此问题:

  • 在正则表达式的开头包含一个贪婪匹配,以便您的匹配始终从尽可能远的字符串开始,并使用捕获组来捕获您想要的内容。这里的正则表达式可能类似于 /.*(\/.+?)$/,然后您将获得 /file 作为第一个捕获组中的内容。
  • 更改正则表达式,使 .+? 无法匹配任何其他 /,因此它将是 /\/[^\/]+ $/.

关于javascript - 为什么非贪婪 Angular 色不行动 'non-greedy' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23304213/

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