Perl是否有可能在替换中保留案例?

时间:2014-02-24 16:40:26

标签: regex perl

我想用另一个字符串替换字符串 - 问题是我需要原始案例保持原样。如果字符串以大写字母开头,我希望替换也以大写字母开头。所以我尝试了这个:

$text =~s/\b(Abc|abc)\b/(Xyz|xyz)/g;

但它用“(Xyz | xyz)”替换“Abc”或“abc”的每个匹配。所以我猜测在更换中使用管道是不可能的?

我也尝试过以下内容,完美无缺:

$text =~s/\bAbc\b/Xyz/g;
$text =~s/\babc\b/abc/g;

...但我真的希望只用一行代码才能做到这一点。如果在一个正则表达式中不可能有两个替换,那么还有其他方法可以保留字符串的原始情况吗?

0 个答案:

没有答案