2011-03-05 44 views
2

我有一個Perl腳本,它有一個字符串,它可能包含或不包含ASCII字符代碼中的字符146。我有興趣在正則表達式中使用chr()函數來確定該字符串是否確實包含該字符。如果角色在那裏,我想用一個「'」字符代替它。如何在Perl中使用正則表達式中的chr函數?

這可能嗎?如果不是另一種方式來做到這一點?

這一個有我的難倒。謝謝!

+0

標題是有點誤導。這不是關於在正則表達式中使用chr(),而是關於在正則表達式中使用特殊字符。 – vog 2011-03-05 01:58:29

+1

字符146不是ASCII。 ASCII停止在127。 – tchrist 2011-03-05 04:51:21

回答

12

您也可以替換成變量模式:

$c = chr(146); 
$target =~ s/$c/'/go; # "o" means $c won't change so remember it 

,但通常你會通過將其轉換爲八進制或十六進制指定爲文字:

$target =~ s/\222/'/g; # octal 
$target =~ s/\x92/'/g; # hex