0

快速 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&nbsp;Perkins&nbsp;(Active)</title>
</head>
</html>
4

1 回答 1

2

您不必知道文档中的文本是如何编码的。因此,findvalue当文档包含&nbsp;. 因此,你会使用

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)
于 2015-10-06T15:04:59.257 回答