我想删除出现在两个已知子字符串(<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 的反向引用。
关于javascript - 如何在不重复分隔字符串的情况下使用javascript正则表达式删除部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707110/