【问题标题】:Decimal to hex conversion in Perl (– to –)Perl 中的十进制到十六进制转换(– 到 –)
【发布时间】:2013-01-31 06:22:04
【问题描述】:

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

如何使用 Perl 做到这一点?

我尝试过使用以下代码:

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

print ascii_to_hex($text);

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

【问题讨论】:

    标签: perl


    【解决方案1】:

    这样就可以了:

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

    \d 匹配的字符太多。)

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-05-05
          • 1970-01-01
          • 2011-02-04
          • 2019-05-10
          • 2023-04-01
          • 1970-01-01
          相关资源
          最近更新 更多