[问题] print special characters (\t,\n,...)

楼主: walelile (wakaka)   2015-03-02 19:57:48
我在学习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)+
谢谢
作者: flu (Crazy Rhythm)   2015-03-05 01:32:00
双引号内的跳逸字元会被解释和替换成其他东西比如说 $tab = "\t" 就是存TAB进去,不是一个\跟着一个t所以 perl -e '$v = 'A\t7'; $v2 = eval( "qq{$v}" );'$v里面有四个字符, 用eval()后$v2里只有三个字符承上, print 'yes' if vt2 =~ /^$v$/ # 'yes'^$v2

Links booklink

Contact Us: admin [ a t ] ucptt.com