perl中一正则表达式关于字符穿替换的问题

perl中一正则表达式关于字符穿替换的问题

perl中一正则表达式关于字符穿替换的问题
在一行字符串中,将其中的字符串fred替换为wilma,wilma替换为fred.
不知道该怎么同时进行两个替换,请高手指点下,或者分两次替换,但是前一次结果对后一次有影响啊.
可以利用圆括号的记忆功能
可以利用圆括号的记忆功能
$_="I thought you said Fred and Barney";
print "it was |$_|\n";
s#(Fred)(.*?)(Barney)#$3$2$1#g;
print "It is |$_|";
在这里结果就是Fred和Barney反回来!
谢谢!给了我很大启发
不过你给的答案里面设定了两个单词的顺序.这样可能造成遗漏.
如果模式变成这样呢?
如果模式变成这样呢:
s#(Fred|Barney)(.*?)(Barney|Fred)#$3$2$1#g;
你没明白我的意思
不需要两个都有,只有其中一个也要替换的.
所以前面的模式里只需要(Fred|Barney)就可以了