gpt4 book ai didi

regex - 最小可能的匹配/非贪婪正则表达式搜索

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

我首先想到的是this answer将完全解决我的问题,但它没有。

我有一个像这样的字符串网址:

http://www.someurl.com/some-text-1-0-1-0-some-other-text.htm#id_76

我想提取 some-other-text所以基本上,我带有以下正则表达式:
/0-(.*)\.htm/

不幸的是,这匹配 1-0-some-other-text因为正则表达式是贪婪的。我无法成功使用 .*? 使其变得非贪婪,正如你所看到的,它不会改变任何东西 here .

我也试过 U修饰符,但它没有帮助。

为什么“非贪婪”提示不起作用?

最佳答案

如果您需要获得最接近的匹配,您可以使用 tempered greedy token .

0-((?:(?!0-).)*)\.htm

demo

正则表达式的惰性版本不起作用,因为正则表达式引擎从左到右分析字符串。它总是得到最左边的位置并检查它是否可以匹配。因此,就您而言,它找到了第一个 0-并且很高兴。懒惰适用于最右边的位置。在您的情况下,最右边有 1 个可能的位置,因此,延迟匹配无法帮助实现预期结果。

你也可以使用
0-((?!.*?0-).*)\.htm

如果您有单独的字符串可以从中提取值,它将起作用。

关于regex - 最小可能的匹配/非贪婪正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775260/

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