Perl中的十进制到十六进制转换( - 到 - )

时间:2013-01-31 06:22:05

标签: perl

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

如何使用Perl执行此操作?

我尝试使用以下代码:

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

print ascii_to_hex($text);

它将转换所有字符。我想仅转换–

3 个答案:

答案 0 :(得分:3)

这样可以解决问题:

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

\d匹配太多字符。)

答案 1 :(得分:0)

试试这个:

$text =~ s/\&#(\d+);/"&#x".sprintf("%x",$1).";"/eg

答案 2 :(得分:0)

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

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