gpt4 book ai didi

regex - 如何在 Perl 中替换所有 HTML 编码的重音符号?

转载 作者:行者123 更新时间:2023-12-05 00:09:21 25 4
gpt4 key购买 nike

我有以下情况:

有一种工具可以从 Web 界面获取 XSLT 并将 XSLT 嵌入到 XML 文件中(应该有人被解雇)。 “不幸的是”我在法语国家工作,因此 XSLT 有许多带有口音的单词。当 XSLT 嵌入到 XML 中时,该工具会将所有重音符号转换为其 HTML 代码(Iacute、igrave 等...)。

我的 Perl 代码正在从 XML 检索 XSLT,并使用 Xalan 命令行工具针对其他 XML 执行它。每次 XSLT 中出现重音时,Xalan 工具都会抛出异常。

我最初虽然做一个正则表达式来改变 XSLT usch 中的所有重音:

# & 在代码中被省略,因为它将在页面中呈现
$xslt =~s/Aacute;/Á/gso;
$xslt =~s/aacute;/á/gso;
$xslt =~s/Agrave;/À/gso;
$xslt =~s/Acirc;/Â/gso;
$xslt =~s/agrave;/à/gso;

但这样做意味着我必须为每个重音代码编写一个正则表达式....

我的问题是,是否可以在不为每个代码编写正则表达式的情况下执行此操作? (认为​​这是唯一的解决方案,让人想呕吐。)

顺便说一下,这个工具是 TeamSite,它很烂......

编辑:我忘了提到我需要一个仅限 Perl 的解决方案,安全性不允许我安装他们一周左右没有检查过的任何类型的库:(

最佳答案

您可以尝试类似 HTML::Entities .从 POD:

use HTML::Entities;
$a = "Våre norske tegn bør &#230res";
decode_entities($a);
#encode_entities($a, "\200-\377"); ## not needed for what you are doing

响应您的编辑,HTML::Entities 不在 perl 核心中。它可能仍安装在您的系统上,因为许多其他库都在使用它。您可以通过运行以下命令进行检查:
perl -MHTML::Entities -le 'print "If this prints, the it is installed"'

关于regex - 如何在 Perl 中替换所有 HTML 编码的重音符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com