The*_*978 1 regex unicode special-characters
是否有一个通用的正则表达式替换非英语语言中的所有已知特殊字符:
é, ô, ç, etc.
Run Code Online (Sandbox Code Playgroud)
英文字符:
e, o, c, etc.
Run Code Online (Sandbox Code Playgroud)
tch*_*ist 11
这是不可能做到的,你不应该这样做!它对整个世界都是冒犯性的,而且无知地认为外墙与拱廊押韵,或科罗拉多州的卡农城属于教规法,这是天真的.
您可以通过Unicode Normalization Form D运行字符串并丢弃标记字符,但我肯定不会告诉您如何,因为它是邪恶的和错误的.由于已经概述的原因,它是邪恶的,这是错误的,因为它根本没有涉及到无数的案例.
以下是您需要阅读的内容:
你必须学会如何以一种有意义的方式比较字符串,并且对它们进行残害从根本上没有任何意义. [pəʇələp] .
您绝不能仅仅按代码点比较非标准化字符串代码,如果可能,您需要考虑语言,因为它们之间的规则不同.
无论您使用何种编程语言,它还可以帮助您阅读Perl的Unicode :: Normalize,Unicode :: Collate和Unicode :: Collate :: Locale模块的文档.
例如,要搜索其中包含"MÜSS"的文本"muß",您可以执行以下操作:
my $Collator = Unicode::Collate->new( normalization => undef, level => 1 );
# (normalization => undef) is REQUIRED.
my $str = "Ich muß studieren Perl.";
my $sub = "MÜSS";
my $match;
if (my($pos,$len) = $Collator->index($str, $sub)) {
$match = substr($str, $pos, $len);
}
Run Code Online (Sandbox Code Playgroud)
这将投入"muß"到$match.
在Unicode::Collate::Module有剪裁到这些语言环境支持:
af Afrikaans
ar Arabic
az Azerbaijani (Azeri)
be Belarusian
bg Bulgarian
ca Catalan
cs Czech
cy Welsh
da Danish
de__phonebook German (umlaut as 'ae', 'oe', 'ue')
eo Esperanto
es Spanish
es__traditional Spanish ('ch' and 'll' as a grapheme)
et Estonian
fi Finnish
fil Filipino
fo Faroese
fr French
ha Hausa
haw Hawaiian
hr Croatian
hu Hungarian
hy Armenian
ig Igbo
is Icelandic
ja Japanese [1]
kk Kazakh
kl Kalaallisut
ko Korean [2]
lt Lithuanian
lv Latvian
mk Macedonian
mt Maltese
nb Norwegian Bokmal
nn Norwegian Nynorsk
nso Northern Sotho
om Oromo
pl Polish
ro Romanian
ru Russian
se Northern Sami
sk Slovak
sl Slovenian
sq Albanian
sr Serbian
sv Swedish
sw Swahili
tn Tswana
to Tonga
tr Turkish
uk Ukrainian
vi Vietnamese
wo Wolof
yo Yoruba
zh Chinese
zh__big5han Chinese (ideographs: big5 order)
zh__gb2312han Chinese (ideographs: GB-2312 order)
zh__pinyin Chinese (ideographs: pinyin order)
zh__stroke Chinese (ideographs: stroke order)
Run Code Online (Sandbox Code Playgroud)
您可以选择:您可以做到这一点,或者您根本不能这样做. 如果你做错了,没有人会感谢你.
正确的做法意味着考虑到UAX#15和UTS#10.
在这个时代,没有什么比这更好的了.你知道,现在不再是20世纪60年代了!