所以,此时我一直在使用这个正则表达式:/{{\s?([^}}]*)\s?}}/g
一切顺利,直到我面对{{ } }}
。
我怎样才能使上述正则表达式适应这种情况呢?
提前致谢。
答案 0 :(得分:2)
/{{\s*([^}]*(?:}(?!})[^}]*)*)}}/g
请参阅regex demo
它基本上与/{{\s*([^]*?)}}/g
相同,但效率更高。
正则表达式解释:
{{
- 两个文字{{
\s*
- 零个或多个空格(为了#34;左边裁剪"子匹配)([^}]*(?:}(?!})[^}]*)*)
- 捕获组1匹配零个或多个序列...
[^}]*
- 除}
以外的零个或多个字符,后跟零个或多个序列...
}(?!})
- 文字}
后面没有}
[^}]*
- 除}
}}
- 两个文字}
。