gpt4 book ai didi

regex - 正则表达式惰性修饰符匹配太多

转载 作者:行者123 更新时间:2023-12-02 20:16:35 24 4
gpt4 key购买 nike

下面的正则表达式是跳转[url]标签...

正则表达式(通用正则表达式)

(?:\[url.*?\])(.*?youtu.*?)(?:\[\/url\])

字符串:

[url]blahyoutubeblah[/url] heyya [url]blahblah[/url]    [url]www.youtube.com/blah[/url]

救命!!

enter image description here

最佳答案

您捕获的组需要包含 youtu,因此子字符串

[url]blahblah[/url]    [url]www.youtube.com/blah[/url]

匹配,因为它以 [url] 开头,包含 youtu,并以 [/url] 结尾。

仅使用否定字符集(不包括 [)可能还不够,因为这不允许嵌套标签匹配,例如输入

[url]foobar youtube[b]BOLD TEXT[/b][/url]

您可能需要在每个重复字符之前对 [/url] 进行负向前瞻:

(?:(?!\[\/url\]).)*

此外,请确保 [url 之后的任何内容在到达真正的 ] 之前不包含 ],其中:

\[url[^]]*\]

全文:

\[url[^]]*\]((?:(?!\[\/url\]).)*youtu(?:(?!\[\/url\]).)*)\[\/url\]

由于负向前瞻,不再需要使量词变得懒惰。

演示:

https://regex101.com/r/hSAJEp/1

关于regex - 正则表达式惰性修饰符匹配太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52249336/

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