我可以将正则表达式的结果转换为新字符串吗?

时间:2018-11-26 05:15:01

标签: regex perl

我已经知道如何使用正则表达式修改字符串,即

$string1 =~ s/[aeiouy]//gi;

但是保留原始字符串的语法是什么?即

$string2 = $string1 = s/[aeiouy]//gi;

因此,$ string1是前面,而$ string2是后面。

确定有办法,谢谢您的帮助

1 个答案:

答案 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"