[英]Regex, Replace brackets between two substrings
我对 Regex 不太好,我试图替换一组字符串中的两个字符。
我需要这个:
This is some variable text
<foo> some stuff <Hello World> other stuff <bar>
替换为:
This is some variable text
<foo> some stuff (Hello World) other stuff <bar>
编辑:在这个例子中,我想找到所有<
和>
,分别用(
和)
替换它们在<foo>
和<bar>
的较大字符串。
使用两个替换怎么样。 一个用于(<foo>)(.*?)(<bar>)
和上什么被捕获由第二捕获组的回调函数,取代<(.*?)>
用($1)
s = s.replace(/(<foo>)(.*?)(<bar>)/g, (m0,m1,m2,m3) => m1+m2.replace(/<(.*?)>/g,'($1)')+m3);
将此命令与正则表达式一起使用,如下所示:
perl -pe 's/(<foo>.*)<(.*)>(.*<bar>)/$1($2)$3/'
console.log(`This is some variable text <foo> some stuff <Hello World> other stuff <bar>` .replace(/<\\w+>|([<>])/g, (m, c) => ({'<':'(', '>':')'}[c] || m)))
console.log(`This is some variable text <foo> some stuff <Hello World> other stuff <bar>` .replace(/<(?!\\w+>)/g, "(") .replace(/>(?<!<\\w+>)/g, ")") )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.