gpt4 book ai didi

regex - 用纯数字替换 Unicode 数字下标或上标

转载 作者:行者123 更新时间:2023-12-01 08:27:22 25 4
gpt4 key购买 nike

如何使用正则表达式将 Unicode 数字下标或上标(例如 2)替换为相应的数字(即 2)?我当然可以分别替换它们中的每一个,但那是十行代码......

我在 Perl 中实现了这个,但这并不重要。

最佳答案

这里来自 the unisupers script 是一个转换为 Unicode 上标的 Perl 函数:

sub convert_to_superscripts (_) {
my $string = $_[0];
$string =~ tr[+−=()0123456789AaÆᴂɐɑɒBbcɕDdðEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ]
[⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱᴽᴾᵖᶲʳᴿʴʵʶˢᶳᶴᵀᵗᶵᵁᵘᶸᵙᶶᶣᵚᶭᶷᵛⱽᶹᶺʷᵂˣʸᶻᶼᶽᶾꝰᵜᵝᵞᵟᶿᵠᵡᵸჼˤⵯ];
return $string;
}

来自 the unisubs script 的是下标:

sub convert_to_subscripts (_) {
my $string = $_[0];
$string =~ tr[+−=()0123456789aeəhijklmnoprstuvxβγρφχ]
[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₔₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ];
return $string;
}

你只需要走另一条路。

另一种更简单的方法是简单地使用 k-compat 规范化,它只返回基本字符而不是它们的上/下版本。我没有检查这些,看它们都是上面函数的逆函数。你可以使用 nfkd 和它们一起玩 nfkc 脚本。

关于regex - 用纯数字替换 Unicode 数字下标或上标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503565/

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