javascript - 如何在不重复分隔字符串的情况下使用javascript正则表达式删除部分字符串

标签 javascript regex string

我想删除出现在两个已知子字符串(<foo></foo>)之间的未知子字符串。例如,我想转换:

hello <foo>remove me</foo>

到:

hello <foo></foo>

我可以用:

s = ...
s.replace(/<foo>.*?<\/foo>/, '<foo></foo>')

但我想知道是否有一种方法可以在不重复正则表达式和替换文本中的已知子字符串(<foo></foo>)的情况下做到这一点。

最佳答案

您可以在 captured group 中捕获标签,稍后将其用作反向引用:

var repl = s.replace(/<(foo)>.*?<\/\1>/, '<$1></$1>');
//=> hello <foo></foo>

注意 \1$1 是对捕获组 #1 的反向引用。

enter image description here

关于javascript - 如何在不重复分隔字符串的情况下使用javascript正则表达式删除部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707110/

相关文章:

javascript - 显示基于 2 个日历日期之间的 div

PHP Regex删除字符后的所有内容

c - 如何定义和初始化结构体内部的字符串数组?

java - Java中的排序列表<>

javascript - 如何根据属性的存在向指令添加条件语句?

javascript |对象分组

javascript - href 中的点符号替换整个 URL 路径

c# - C#.net 中字母和可选连字符的正则表达式

java - Java 中的特殊正则表达式语法

javascript - 正则表达式仅匹配前后没有字符的字符串