2015-07-11 157 views
1

我在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} DatedPerl用正則表達式去除字符

我嘗試使用以下內容:

$file =~ s/\\x\{a0\}//g; 

,但它不會刪除字符。如何在Perl中使用正則表達式去除字符\x{a0}

回答

3

如何在perl中用正則表達式去除字符\ x {a0}?

s/\xa0//gs/\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'