gpt4 book ai didi

ruby - 正则表达式:捕获多个相似 block

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:40 24 4
gpt4 key购买 nike

我试图在字符串中单独捕获所有 {% tag %}...{% endtag %} block ,但我的正则表达式总是返回从第一个开始标记到最后一个结束标签。我怎样才能让它分别捕获所有 block 而不是只捕获一个匹配项?

这是一个字符串的例子:

{% tag %}Lorem ipsum dolor sit amet{% endtag %}

{% tag %}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
{% endtag %}

还有我的正则表达式( ruby ):/(\{% trans %\}.*\{% endtrans %\})/m

我知道 .* 是问题所在,但我还没有找到匹配除结束标记之外的所有内容的方法。

最佳答案

您应该使用非贪婪或惰性量词 (?)。这意味着 .*? 将尝试尽可能少地匹配,而不是 .* 尽可能多地匹配(贪婪)。

/(\{% trans %\}.*?\{% endtrans %\})/m

DEMO

关于ruby - 正则表达式:捕获多个相似 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23468431/

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