我在perl中使用正则表达式有点困惑。我试图抓取一个网页,它似乎产生这样的字符串:Referred for adjudication-Orders issued.G.O.(Rt)No.826/2015/LBR\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0}\x{a0} Dated
我尝试使用以下内容:
$file =~ s/\\x\{a0\}//g;
但它并没有删除字符。如何在perl中删除带有正则表达式的字符\x{a0}
?
答案 0 :(得分:3)
如何在perl中删除带有正则表达式的字符\ x {a0}?
s/\xa0//g
或s/\x{a0}//g
。
演示:
perl -wle 'print qq(a\x{a0}b) =~ s/\x{a0}//gr'
因为在双引号字符串中\xHH
是一个转义,指的是ASCII代码点HH,其中H是任何十六进制数字,\x{HHHH}
是指Unicode代码点HHHH。
如果您的字符串中有文字反斜杠,字母x
等,s/\\x\{a0\}//g
将起作用,但您可能正在使用转义该字符串的内容进行打印。
演示(单引号字符串不插入):
perl -wle 'print q(a\x{a0}b) =~ s/\\x\{a0\}//gr'