如何编写匹配{{{开头、}}}结尾的{{{any_Name}}}格式的正则表达式?
正则匹配{{{any_Name}}}格式内容的实现方案
你需要的完整正则表达式如下:
通用匹配版本(允许中间包含任意字符)
/\{{3}(.*?)\}{3}/g
各部分规则说明:
\{{3}:匹配开头连续3个左大括号,与你已实现的部分一致(.*?):非贪婪模式匹配中间的任意内容,外层括号用于单独捕获中间的变量名,不需要单独提取时可去掉括号\}{3}:匹配结尾连续3个右大括号,右大括号属于正则特殊字符,需要加反斜杠\转义后,通过{3}指定匹配连续3次
精准匹配版本(仅允许中间为字母、数字、下划线组成的变量名)
如果你的变量名仅支持any_Name这类仅含大小写字母、数字、下划线的格式,可使用更精准的正则避免误匹配:/\{{3}([a-zA-Z0-9_]+)\}{3}/g
调用示例(JavaScript环境)
const testStr = "测试文本包含{{{userName}}}、{{{user_Age2}}}两个目标格式内容"; const reg = /\{{3}(.*?)\}{3}/g; const result = [...testStr.matchAll(reg)]; result.forEach(item => { console.log('完整匹配串:', item[0]); // 依次输出 {{{userName}}}、{{{user_Age2}}} console.log('捕获的变量名:', item[1]); // 依次输出 userName、user_Age2 })
内容的提问来源于stack exchange,提问作者Hunain-Gillani
相关产品推荐
相关产品推荐

