1

多くの数値エンティティを含むHTMLファイルがあります。10進数から16進数に変更したい。例:(–ダッシュ)をに変更したい–

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

16進数から10進数に変換するには:

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