作者walelile (wakaka)
看板Perl
标题[问题] print special characters (\t,\n,...)
时间Mon Mar 2 19:57:48 2015
我在学习regular expresion时, 写了以下代码
@pattern = ("ddd\t rrr", "ddd\tggg");
@match = ("d( |\t)+", "d ");
foreach my $p (@pattern) {
foreach my $m (@match) {
if ($p =~ /$m/) {
print ("p:$p match m:$m \n");
}
}
}
print那一行的结果如下:
p:ddd rrr match m:d( | )+
p:ddd ggg match m:d( | )+
请教板上各位先进
是否有办法print出raw string如下
p:ddd\t rrr match m:d( |\t)+
p:ddd\tggg match m:d( |\t)+
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.171.160.10
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1425297471.A.BB8.html
1F:推 flu: 双引号内的跳逸字元会被解释和替换成其他东西 03/05 01:32
2F:→ flu: 比如说 $tab = "\t" 就是存TAB进去,不是一个\跟着一个t 03/05 01:33
3F:→ flu: 所以 perl -e '$v = 'A\t7'; $v2 = eval( "qq{$v}" );' 03/05 01:36
4F:→ flu: $v里面有四个字元, 用eval()後$v2里只有三个字元 03/05 01:39
5F:→ flu: 承上, print 'yes' if vt2 =~ /^$v$/ # 'yes' 03/05 01:41
6F:→ flu: ^$v2 03/05 01:42