sse*_*uft 2 regex unicode perl superscript unicode-normalization
如何使用正则表达式将Unicode数字下标或上标(例如?)替换为相应的数字(即2)?我当然可以单独替换它们,但那是十行代码......
我在Perl中实现这个,但这不应该真的重要.
从这里的unisupers脚本是一个Perl的功能转换为Unicode标:
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;
}
Run Code Online (Sandbox Code Playgroud)
而从该unisubs脚本是一个下标:
sub convert_to_subscripts (_) {
my $string = $_[0];
$string =~ tr[+?=()0123456789ae?hijklmnoprstuvx?????]
[??????????????????????????????????????];
return $string;
}
Run Code Online (Sandbox Code Playgroud)
你只需要走另一条路.
另一种更简单的方法就是使用k-compat规范化,它只返回基本字符而不是它们的上/下版本.我没有检查这些,看它们都是上述函数的反转.您可以使用nfkd和 nfkc脚本来播放它们.
| 归档时间: |
|
| 查看次数: |
1779 次 |
| 最近记录: |