2017-01-31 17 views
0

Я пытаюсь разобрать строку, содержащую символ британской валюты £, используя perl на Mac, управляющем El Capitan, но не может заставить его разбираться. В идеале я хотел бы использовать его разбить строкуparsing £ в Perl на Mac

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

, но я не могу даже получить регулярные выражения для работы. Escaping не работает. Это проблема с набором символов Mac? Листинг на терминале показывает? вместо £.

Мишень текст поступает из названных якорей в HTML, написанных Composer SeaMonkey по:

<a name="word1£word2">

+4

Значит, вы читаете это из файла? Что такое кодировка файла? – ThisSuitIsBlackNot

+0

Western (ISO Latin 1), но есть и некоторый русский текст – drw

+3

Если вы читаете HTML, вы, скорее всего, должны использовать парсер HTML. Кроме того, невозможно, чтобы файл находился в ISO-Latin-1 и содержал русский (кириллический) текст, если только он не использует символьные сущности. Итак, что же такое кодировка файла? – jcaron

ответ

0

Используйте utf8 pragma, так как этот символ является символом юникода. вот пример кода.

use strict; 

use utf8; 

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

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

Это работает и является более читаемым, чем указание '' '' '\ N {U + 00A3}'! – drw

1

Один простой ответ был бы

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

где \N{U+00A3} является Unicode для £.