求助:如何用正则表达式按{{Text}}格式分割文本?
按
{{Text}}格式分割文本的正则表达式方案 嘿,很高兴看到你自己搞定了这个正则!我来把这个方案梳理得更清楚些,方便其他有同样需求的开发者参考:
需求说明
我们需要一个正则表达式,用来将包含{{任意内容}}格式的文本在这些标记位置进行分割,最终得到去掉所有{{...}}部分后的剩余内容组成的数组。比如示例文本:
var str = "{{This}} is a {{test}} string to be {{spliced}} with {{Regular}} Expression";
分割后要得到:
["","is a ","string to be "," with"," Expression"]
解决方案
你找到的正则表达式{{[^{}]+}}完全符合需求,这里拆解一下它的逻辑:
{{:精准匹配开头的两个左大括号[^{}]+:匹配至少一个非大括号的字符(确保只匹配{{和}}之间的内容,不会误匹配嵌套的大括号)}}:精准匹配结尾的两个右大括号
代码示例
const regx = /{{[^{}]+}}/g; const str = "{{This}} is a {{test}} string to be {{spliced}} with {{Regular}} Expression"; const splitArray = str.split(regx); console.log(splitArray); // 输出:["","is a ","string to be "," with"," Expression"]
注意要加上g修饰符,这样才能全局匹配所有符合格式的标记,否则只会分割第一个匹配项。
内容的提问来源于stack exchange,提问作者Razin Abid
相关产品推荐
相关产品推荐

