gpt4 book ai didi

javascript - 最后一个字符串与正则表达式不匹配

转载 作者:行者123 更新时间:2023-11-30 18:44:34 25 4
gpt4 key购买 nike

我需要一些正则表达式的帮助。我有我想要匹配的代码。

var i1 = "<ul> {{#items}}<li>{{.}}</li>{{/items}} </ul>";
var i2 = "<ul> {{#items}}<li>{{.}}</li> <li><ul> {{#items}}<li>{{.}}</li>{{/items}} </ul></li>{{/items}} </ul>";
var i3 = "<ul> {{#items}}<li>{{.}}</li>{{/items}} </ul> <ul> {{#items}}<li>{{.}}</li>{{/items}} </ul>";


var reg = /{{(?:(?:#|!#)([\s\w\.-]+))}}+(.+(?:{{\/.+}}))/

i1 => ["{{#items}}<li>{{.}}</li>{{/items}}", "items", "<li>{{.}}</li>"]
i2 => ["{{#items}}<li>{{.}}</li> <li><ul> {{#items}}<li>{{.}}</li>{{/items}} </ul></li>{{/items}}", "items", "<li>{{.}}</li> <li><ul> {{#items}}<li>{{.}}</li>{{/items}} </ul></li>"]
i3 => ["{{#items}}<li>{{.}}</li>{{/items}} </ul> <ul> {{#items}}<li>{{.}}</li>{{/items}}", "items", "<li>{{.}}</li>{{/items}} </ul> <ul> {{#items}}<li>{{.}}</li>"]

最后一个与我想要的不匹配。我只希望它匹配第一个 ul#items 并在第一个 {{/items}} 出现时停止。 reg 的前两个没有 html 标签。

我需要一些帮助来弄清楚如何做最后一个。

谢谢

最佳答案

您的模式是贪心的,这意味着它将匹配最大可能的字符串。使用 .*?.+? 而不是 .*.+。检查here有关“贪婪”和“惰性”运算符之间差异的更详细解释。

关于javascript - 最后一个字符串与正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850253/

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