我想用另一个字符串替换字符串 - 问题是我需要原始案例保持原样。如果字符串以大写字母开头,我希望替换也以大写字母开头。所以我尝试了这个:
$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;
...但我真的希望只用一行代码才能做到这一点。如果在一个正则表达式中不可能有两个替换,那么还有其他方法可以保留字符串的原始情况吗?