Quick 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 code:
<html>
<head>
<title>Dan Perkins (Active)</title>
</head>
</html>
答案 0 :(得分:2)
您不必知道文档中的文本是如何编码的。因此,当文档包含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)