Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用标记之间的文本更改标记_Javascript_Regex - Fatal编程技术网

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.