初学者正则表达式:多个替代

前端之家收集整理的这篇文章主要介绍了初学者正则表达式:多个替代前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符串:

$mystring = "My cat likes to eat tomatoes.";

我想用regex对这个字符串进行两次替换.我想做s / cat / dog /和s / tomato / pasta /.但是,我不知道如何正确格式化正则表达式,在一个表达式中,在一个声明中,在一个表达式中执行多个替换.现在,我只有:

$mystring =~ s/cat/dog/ig;
$mystring =~ s/tomatoes/pasta/ig;

解决方法

我的建议是你这样做

my $text               =  'My cat likes to eat tomatoes.';
my ( $format = $text ) =~ s/\b(cat|tomatoes)\b/%s/g;

然后你可以这样做:

my $new_sentence = sprintf( $format,'dog','pasta' );

除此之外:

$new_sentence    = sprintf( $format,'tiger','asparagus' );

我和其他人一起去.你不应该想要在一个表达式或一行中完成所有操作……但这是一种方法

$text =~ s/\b(cat|tomatoes)\b/ ${{ qw<cat dog tomatoes pasta> }}{$1} /ge;

猜你在找的正则表达式相关文章