我在一些生产代码中找到的Perl正则表达式中冒号有什么功能?
if ($r->uri =~ m:/copy/(\d+):) {
my $ref = $1;
代码正在解析URI,第二行使用捕获的组。
答案 0 :(得分:10)
perl中的m
运算符用于针对正则表达式测试字符串。你通常会这样使用它:
"string" =~ m/regex/
如果需要,可以更改上面示例中的引号(/
)。因此,上述示例可以等效地编写为以下任何一个:
"string" =~ m(regex)
"string" =~ m[regex]
"string" =~ m{regex}
"string" =~ m|regex|
"string" =~ m:regex:
请注意,如果您使用/
,则可以省略m
,如
"string" =~ /regex/
答案 1 :(得分:6)