Perl - 可以在变量中存储和执行Regex吗?

时间:2013-09-12 11:30:27

标签: regex perl

我有一个简短的问题: 是否可以将Regex作为字符串存储在变量中(好吧,我知道这是可能的)然后执行它?

或者是唯一可能在变量中存储和使用匹配和替换模式吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:9)

您可以使用qr//引号将预编译的regex对象保存在标量变量中:

my $re = qr/foo/;

"foobar" =~ $re;        # works
"foobar" =~ /$re/;      # the same thing
"foobar" =~ /${re}bar/; # compose your regexes
"foobar" =~ s/$re/baz/; # use in substitutions
"$re"; # a version-dependent stringification of the regex
       # that is equivalent to your pattern.