1

我有一个包含许多数字实体的 HTML 文件。我想将它们从使用十进制数字更改为十六进制数字。例如:我想–(破折号)更改为–.

使用 Perl 如何做到这一点?

我尝试使用以下代码:

use String::HexConvert ':all';
my $text = "this is text–example";

print ascii_to_hex($text);

它将转换所有字符。我想转换–唯一的。

4

3 回答 3

3

这可以解决问题:

$html =~ s/&#([0-9]+);/ sprintf("&#x%x;", $1) /eg;

\d匹配太多字符。)

于 2013-01-31T06:33:45.303 回答
0

尝试这个:

$text =~ s/\&#(\d+);/"&#x".sprintf("%x",$1).";"/eg
于 2013-01-31T06:30:27.207 回答
0

从十六进制转换为十进制:

$html =~ s/&#(x[0-9A-Fa-f]+);/ sprintf("&#%d;", hex($1)) /eg;
于 2014-11-21T10:48:14.707 回答