在正则表达式中使用变量的一个问题

niudou 2004-10-21 10:47:32
test.pl程序如下:
#! perl/usr/bin -w
use strict;
my $line;
my $patten = "a\\b\\c\\";

open FN, "filelist.txt" || die "can not open: $!";
while ( defined ( $line = <FN> ) ) {
chomp $line;
if ( $line =~ /$patten/ ) {
print $line."\n";
}
}
close FN;

filelist.txt内容如下:
a\b\c\1.txt
a\b\c\2.txt
a\b\c\1.txt

$line =~ /$patten/匹配不到,报错!感觉是$patten中带有“\\”引起的,有什么方法可以解决呢?
...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
niudou 2004-10-22
  • 打赏
  • 举报
回复
原来如此! 多谢! 给分!
AllCHN 2004-10-22
  • 打赏
  • 举报
回复
\\在pattern里变成\b\c了,不是你要求的样式,可以用quotameta函数转换
或者改成
$pattern = "a\\\\b\\\\c\\\\";

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧