我已经知道如何使用正则表达式修改字符串,即
$string1 =~ s/[aeiouy]//gi;
但是保留原始字符串的语法是什么?即
$string2 = $string1 = s/[aeiouy]//gi;
因此,$ string1是前面,而$ string2是后面。
确定有办法,谢谢您的帮助
答案 0 :(得分:1)
如果您拥有Perl 5.14或更高版本,则可以使用/r
modifier。
$string1 = "cat toy";
$string2 = ($string1 =~ s/[aeiouy]//gir);
print $string1; # "cat toy", unchanged
print $string2; # "ct t", with modifications
它也可以与音译运算符一起使用
$string1 = "cat toy";
$string2 = ($string1 =~ tr/aeiouy/123456/r);
print $string1; # "cat toy"
print $string2; # "c1t t46"