McL*_*vin 4 regex variables perl special-characters
我正在尝试在数组中搜索包含$ inbucket [0]的行.我的一些$ inbucket [0]值包含特殊字符.这个脚本正是我想要的,直到我遇到一个特殊字符.
我希望查询不区分大小写,匹配字符串$ var的任何部分,并按字面处理特殊字符,就好像它们不是特殊的一样.有任何想法吗?
谢谢!
sub loopthru() {
warn "Loopthru begun on $inbucket[0]\n";
foreach $c (@chat) {
$var = $c->msg;
$lookfor2 = $inbucket[0];
if ( $var =~ /$lookfor2/i ) {
($to,$from) = split('-',$var);
$from =~ s/\.$//;
print MYFILE "$to\t$from\n";
&fillbucket($to);
&fillbucket($from);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用quotemeta,它返回其参数的值,并将所有非"单词"字符反斜杠.
$lookfor2 = quotemeta $inbucket[0];
Run Code Online (Sandbox Code Playgroud)
或者你可以使用\Q转义,这在perlre中讨论过.简而言之,它将引用(禁用)模式元字符,直到\E遇到.
if ( $var =~ /\Q$lookfor2/i ) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8227 次 |
| 最近记录: |