在一个Perl正则表达式中组合不同的大小写规则

itz*_*tzy 6 regex perl

我有一个Perl变量,$word.我想做一个像这样的正则表达式:

$text =~ /ab($word)cd/;
Run Code Online (Sandbox Code Playgroud)

我希望正则表达式对于abcd部分区分大小写,但不是对于其中的任何内容$word.所以如果$word='stack',我希望这两个匹配:

abstackcd
abStAcKcd
Run Code Online (Sandbox Code Playgroud)

等,但我不想匹配

Abstackcd
Run Code Online (Sandbox Code Playgroud)

我想我正在寻找一些方法来应用/ijust $word而不是表达式的其余部分.可以这样做吗?

hob*_*bbs 15

是的,使用(?i:$word).请参阅perldoc perlre的"扩展模式"部分.(?i:\Q$word\E)顺便说一下,你可能真的想要自动引用任何正则表达式元字符$word.