[問題] 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