Regex perl中的qr函数

Regex perl中的qr函数,regex,perl,Regex,Perl,我试图在perl中使用qr函数,还想进行不区分大小写的正则表达式匹配。以下是我正在尝试做的事情: my $pattern = qr(Buy Qty\[([0-9]+\.?[0-9]*)\]); my $logPattern = "BUY Qty[200000] On merchant site"; if($logPattern =~ /$pattern/i){ print "MatchFound, Qty is ==> $1"; else { print "Match

我试图在perl中使用qr函数,还想进行不区分大小写的正则表达式匹配。以下是我正在尝试做的事情:

my $pattern = qr(Buy Qty\[([0-9]+\.?[0-9]*)\]);
my $logPattern = "BUY Qty[200000]  On merchant site";

if($logPattern =~ /$pattern/i){
    print "MatchFound, Qty is ==> $1";
else {
    print "Match Not found";
}
然而,当我运行它时,它会给我“Match Not found”,因为它不会使这个正则表达式匹配不区分大小写。但是,如果我删除二维码并使用相同的模式,它会给我正确的答案


请务必让我知道我缺少什么。

您必须使用
/I
开关编译正则表达式

my $pattern = qr(Buy Qty\[([0-9]+\.?[0-9]*)\])i;

谢谢,它起作用了…但是为什么它忽略了m/中的/i开关呢context@ANewDeveloper建议编译正则表达式时使用
/msixpodual
标志。@ANewDeveloper,它没有被忽略<代码>$re=qr/a/;'Aa'=~/a$re/i将匹配。它只是不适用于指定应使用区分大小写匹配的子模式。