gpt4 book ai didi

regex - 如何替换除西​​类牙语以外的所有 unicode 字符?

转载 作者:行者123 更新时间:2023-12-04 17:41:01 25 4
gpt4 key购买 nike

我正在尝试从文件中删除除西类牙语字符之外的所有 Unicode 字符。

匹配不同的元音没有任何问题,并且 áéíóúÁÉÍÓÚ 没有使用以下正则表达式替换(但所有其他 Unicode 似乎都被替换):

perl -pe 's/[^áéíóúÁÉÍÓÚ[:ascii:]]//g;'文件名

但是当我将倒置问号 ¿ 或感叹号 ¡ 添加到正则表达式时,其他 Unicode 字符也被匹配并排除,我想将其删除:

perl -pe 's/[^áéíóúÁÉÍÓÚ¡¿[:ascii:]]//g;' filename 不会替换以下内容(有些不可打印):³ �

我在这里遗漏了什么明显的东西吗?我也愿意接受在终端上执行此操作的其他方式。

最佳答案

您有一个 UTF8 编码的文件并使用 Unicode 字符,因此,您需要传递一组特定的选项以让 Perl 知道这一点。

您应该添加 -Mutf8 让 Perl 识别直接在您的 Perl 代码中使用的 UTF8 编码字符。

此外,您需要传递 -CSD(等同于 -CIOED),以便对您的输入进行解码并重新编码输出。此值依赖于编码,它将适用于 UTF8 编码。

perl -CSD -Mutf8 -pe 's/[^áéíóúñüÁÉÍÓÚÑÜ¡¿[:ascii:]]//g;' filename

不要忘记 Üü

关于regex - 如何替换除西​​类牙语以外的所有 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54507064/

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