2017-01-31 66 views
0

我試圖用運行El Capitan的Mac上的perl解析包含英國貨幣£符號的行,但無法解析它。理想的情況是我想用它分割字符串在Mac上用Perl解析£

@Line=split("£",$Hit);

,但我甚至無法正則表達式的工作。轉義不起作用這是一個Mac字符集問題?在終端上列出了一個?代替英鎊。

目標文本來自於HTML命名錨通過組件Seamonkey的作曲家寫的:

<a name="word1£word2">

+4

所以你正在從一個文件中讀取?什麼是文件的編碼? – ThisSuitIsBlackNot

+0

Western(ISO拉丁文1),但也有一些俄文文本 – drw

+3

如果您正在閱讀HTML,您應該最有可能使用HTML解析器。另外,除非使用字符實體,否則絕對不可能使用ISO-Latin-1文件幷包含俄文(西里爾文)文本。那麼,再次,文件的編碼是什麼? – jcaron

回答

0

請使用utf8編譯指示,因爲該符號是unicode字符。這裏是示例代碼。

use strict; 

use utf8; 

my $str = qq~<a name="word1£word2">~; 
my ($first, $second) = split("£", $str); 

print "$first $second\n"; 
+0

這可以工作,比'\ N'作爲'\ N {U + 00A3}'更可讀! – drw

1

一個簡單的答案是

@Line=split("\N{U+00A3}",$Hit); 

其中\N{U+00A3}是Unicode爲£