我对 Perl 和正则表达式非常有经验。然而,这让我发疯了,我找不到答案,我也看不出原因。请看下面的代码:
my $str = 'Hello[world]';
say $str =~ m/\w+\[.*?\]/ ? 'Yes' : 'No';
say $str =~ m[\w+\[.*?\]] ? 'Yes' : 'No';
say $str =~ m(\w+\[.*?\]) ? 'Yes' : 'No';
这个的输出是:
Yes
No
Yes
如您所见,我唯一要更改的是正则表达式分隔符,当分隔符为方括号时,表达式无法正常工作。
有人可以解释为什么第二个不匹配吗?
提前致谢,
弗朗西斯科