Perl在一个正则表达式中搜索和替换

时间:2014-02-17 14:34:34

标签: regex perl

我需要这样的内容:'s/oldstr/newstr/g;pattern',即我想替换oldstr并在替换后在字符串中找到一些pattern。所有在一个正则表达式。

1 个答案:

答案 0 :(得分:3)

如果要先替换并在结果字符串中查找模式,则可以将两个表达式放在一起。使用/r标志替换将返回更改的字符串,m运算符将匹配该模式的字符串。

use Test::Simple 'no_plan'; # this is just for the ok() function

my $str = 'foobar';
ok($str =~ s/o/0/gr =~ m/\d\d/);
ok($str =~ s/o/0/gr !~ m/\d\d\d/);

__END__
ok 1
ok 2
1..2