我对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>
1}}。
答案 0 :(得分:3)
如何使用两个替换。一个用于(<foo>)(.*?)(<bar>)
,另一个用于what was captured,第二个capturing group的回调函数代替了<(.*?)>
with ($1)
s = s.replace(/(<foo>)(.*?)(<bar>)/g, (m0,m1,m2,m3) => m1+m2.replace(/<(.*?)>/g,'($1)')+m3);
答案 1 :(得分:2)
将此命令与正则表达式一起使用,如下所示:
perl -pe 's/(<foo>.*)<(.*)>(.*<bar>)/$1($2)$3/'
答案 2 :(得分:0)
console.log(`This is some variable text
<foo> some stuff <Hello World> other stuff <bar>`
.replace(/<\w+>|([<>])/g, (m, c) => ({'<':'(', '>':')'}[c] || m)))
答案 3 :(得分:0)
$app->router = new \App\Routing\Router;