在perl中,我希望能够做到这一点:
$switches = "is";
$regexp = "\\d";
if ($string =~ m/$regexp/$switches) {
do something...
}
换句话说,如何在运行时使“$ switches”可选? (用户可以从各种搜索选项中进行选择)
答案 0 :(得分:11)
if ($string =~ /(?$flags:$pattern)/) {
...
}
注意:如果$pattern
是一个编译模式(即由qr//
生成)而不是字符串,那么这不会起作用,因为它是传递给{{1}的标志影响用qr//
编译的模式。您必须将标记传递给qr//
而不是qr//
。