Perl разделить строку по ссылке на символьную сущность & nbsp;
Быстрый Perl вопрос с, надеюсь, простым ответом. Я пытаюсь выполнить разбиение строки, содержащей неразрывные пробелы (
). Это после прочтения в html
использование страницы HTML::TreeBuilder::XPath
и получение строки, необходимой $titleString = $tree->findvalue('/html/head/title')
use HTML::TreeBuilder::XPath;
$tree = HTML::TreeBuilder::XPath->new;
$tree->parse_file( "filename" );
$titleString = $tree->findvalue('/html/head/title');
print "$titleString\n";
Ниже вставлена исходная строка, а ниже - строка, которая будет напечатана:
Mr Dan Perkins (Active)
Mr?Dan Perkins?(Active)
Я пробовал разделить $titleString
с @parts = split('\?',$titleString);
а также с оригиналом nbsp
Хотя ни один не работал. Я догадываюсь, что есть какой-то простой код, который нужно добавить куда-нибудь?
HTML код:
<html>
<head>
<title>Dan Perkins (Active)</title>
</head>
</html>
1 ответ
Вам не нужно знать, как кодируется текст в документе. В качестве таких, findvalue
возвращает фактический неразрывный пробел (U+00A0), когда документ содержит
, Таким образом, вы будете использовать
split(/\xA0/, $title_string)
-or-
split(/\x{00A0}/, $title_string)
-or-
split(/\N{U+00A0}/, $title_string)
-or-
split(/\N{NBSP}/, $title_string)
-or-
split(/\N{NO-BREAK SPACE}/, $title_string)