Javascript 使用标记之间的文本更改标记
我的标题听起来很复杂,所以我将通过举个例子来简化它 我有这些自制的标签,比如Javascript 使用标记之间的文本更改标记,javascript,regex,Javascript,Regex,我的标题听起来很复杂,所以我将通过举个例子来简化它 我有这些自制的标签,比如 {tag}tagtext{tag} 我想把它变成 <span>same tagtext</span> 此外,所有的标记都是相同的,出于某种原因,match函数只给了我它找到的第一个结果。我想这和我的正则表达式有关 此外,我不想做循环,因为它将开始作为一个活的编辑器工作,我需要保持快速的性能 /(\{tag\})(.*?)\1/g ^^^^^^^^^ ^^ ^^ ^ 1
{tag}tagtext{tag}
我想把它变成
<span>same tagtext</span>
此外,所有的标记都是相同的,出于某种原因,match函数只给了我它找到的第一个结果。我想这和我的正则表达式有关
此外,我不想做循环,因为它将开始作为一个活的编辑器工作,我需要保持快速的性能
/(\{tag\})(.*?)\1/g
^^^^^^^^^ ^^ ^^ ^
1 2 3 4
1: Match tag and put in group 1
2: *? Quantifier — Matches between zero and unlimited times, as few times as possible, expanding as needed (lazy)
3: matches the same text as most recently matched by the 1st capturing group
4: Global pattern flags, all matches.
var temp=“{tag}tagtext1{tag}{tag}{tagtext2{tag}\n{tag}tagtext3{tag}{tag}{tagtext4{tag}”;
log(temp.replace(/(\{tag\})(.*?\1/g,“$2”)代码>必须在正则表达式后使用全局修饰符或g才能启用所有匹配。RegEx使用什么语言?如果可以将标记符号更改为类似于内容的内容,那么可以将文本解析为XML并检索JSON编码的字符串。您可能会发现,您需要使用/g
来匹配多于第一个结果eah,这正是我所期待的。非常感谢。我还在学习使用正则表达式,它看起来很复杂。你介意解释一下你的代码吗??如果没有,没关系:)许多网站都有标准的解释。
/(\{tag\})(.*?)\1/g
^^^^^^^^^ ^^ ^^ ^
1 2 3 4
1: Match tag and put in group 1
2: *? Quantifier — Matches between zero and unlimited times, as few times as possible, expanding as needed (lazy)
3: matches the same text as most recently matched by the 1st capturing group
4: Global pattern flags, all matches.