我有一个Perl变量$word
。我想做这样的正则表达式:
$text =~ /ab($word)cd/;
我希望正则表达式对
ab
和cd
部分区分大小写,但对$word
中的内容不区分大小写。因此,如果$word='stack'
,我希望两者都匹配:abstackcd
abStAcKcd
等,但我不想匹配
Abstackcd
我猜我正在寻找某种方法将
/i
仅应用于$word
,而不应用于表达式的其余部分。能做到吗?
最佳答案
是的,使用(?i:$word)
。请参阅"Extended Patterns" of perldoc perlre部分。顺便说一句,您实际上可能想要(?i:\Q$word\E)
,它将自动引用$word
中的任何正则表达式元字符。
关于regex - 在一个Perl正则表达式中组合不同的大小写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403991/