快速Perl问题,希望有一个简单的答案。我试图在包含非分隔空间(
)的字符串上执行分割。这是在使用HTML::TreeBuilder::XPath
读取html
页面并检索$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 "$titleStringn";
粘贴在下面的是原始字符串,下面是打印的字符串:
Mr Dan Perkins (Active)
Mr?Dan Perkins?(Active)
我试过把$titleString
和@parts = split('?',$titleString);
分开,也和原来的nbsp
分开,虽然都没有工作。我的直觉是有一段简单的编码代码要添加到某个地方?
<html>
<head>
<title>Dan Perkins (Active)</title>
</head>
</html>
您不需要知道文档中的文本是如何编码的。因此,当文档包含
时,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)