首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式在双引号文本中查找2个以上的大括号

正则表达式在双引号文本中查找2个以上的大括号
EN

Stack Overflow用户
提问于 2017-08-09 07:58:38
回答 7查看 461关注 0票数 1

我试图找到所有字符串有超过2个大括号块,即2个动态值,如{{data1}} {{data2}}之间的双引号

例如:

代码语言:javascript
运行
复制
class="xyz level1 {{disabled}} what is the {{contentStyle}} result" 

我试过了,但没有成功

(.*?{{){1,}

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-08-09 08:03:04

为什么不是\{\{(\w+)?\}\}呢?这将匹配胡须样式大括号内的文本。

regexer

票数 1
EN

Stack Overflow用户

发布于 2017-08-09 08:10:27

我认为您要求测试两个匹配项-尝试String.protoype.match和针对长度进行测试

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global

代码语言:javascript
运行
复制
function x(str) {
    return str.match(/\{\{(\w+)?\}\}/g).length > 1
}
票数 1
EN

Stack Overflow用户

发布于 2017-08-09 08:11:22

假设您实际上指的是两个或更多的花括号,您可以使用以下内容:

(({){2,})\S*((}){2,})/g

请注意,如果您实际需要3个或更多的花括号(多于2,例如{{code}),则只需将上面示例中的2更改为3即可。

这是通过捕获第一个组(({){2,})来工作的,其中({)与左花括号匹配,而{2,}捕获两个或更多前面的组。然后,它允许任意数量的( *)非空白( \S)字符,并在遇到((}){2,})时停止匹配,这与我对开始序列的描述相同,只是使用了}\g是全局标志,允许它匹配模式的多个实例,而不仅仅是第一个实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45579671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档