正则表达式匹配连续的大括号

时间:2014-01-21 10:31:50

标签: javascript html regex

我正在尝试匹配HTML中的一些大括号,以便使用正则表达式自定义构建的客户端模板。我有它工作,除了在一个案例中有2个或更多匹配的字符串彼此相邻。

我想要匹配的字符串是:

{{+ANYTEXT}}

正在使用的正则表达式是:

{{\s*\+\S*\s*}}

以下示例:

<div class="rows"> 
    {{#Rows}} ssss1212XXXX {{+Anything.More.Evenmore}}$ssds {{/Rows}} 
</div> 
<div class="actions"> 
    {{#Actions}} ss[{{+UI.Action1}} {{+UI.Action2}} sdfsf {{/Actions}} 
    {{#Actions}} sss{{+UI.Action3}}{{+UI.Action4}} sdfsf {{/Actions}} 
</div>

匹配第一个实例:{{+ Anything.More.Evenmore}};作为单独匹配的下两个操作,Action1和Action2 BUT 将最后两个操作匹配为一个匹配。

所以我试图找出如何将{{+ ANYTEXT}}与除}和{之外的任何内容相匹配但不包括在匹配中。不幸的是我失败了。任何帮助非常感谢。

2 个答案:

答案 0 :(得分:1)

\S*上添加一个问号,使其不那么贪婪并且有效。 Test

/{{\s*\+\S*?\s*}}/g

答案 1 :(得分:1)

您可以使用正则表达式:

({{\s*\+[^}]*\s*}})

<强> DEMO

说明:

enter image description here

<强> Fiddle Demo