Lui*_*ese 21 c# string unicode
例如,我从 REST API 收到了具有这种风格的文本
?
?
????? ????????????? ???? ? ?????G?
但这不是斜体、粗体或下划线,因为它是字符串类型。这种文字使它失败了我的正则表达式^[a-zA-Z0-9._]*$
我想标准化在标准字符串中收到的这个字符串,以使我的 Regex 仍然有效。
VLR*_*enn 19
您可以使用 Unicode Compatibility 规范化形式,它使用 Unicode 自己的(有损)字符映射将类似字母的字符(除其他外)转换为它们的简化等效项。
在python中,例如:
>>> from unicodedata import normalize
>>> normalize('NFKD',' ')
'How to remove this font from a string'
# EDIT: This one wouldn't work
>>> normalize('NFKD','??? ?? ?????? ???? ƒ??? ƒ??? ? ?????g?')
'??? ?? ?????? ???? ƒ??? ƒ??? ? ?????g?'
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,这仅适用于样式形式(上标、黑字、填充宽度等),因此使用非拉丁字符的第三个示例无法分解为 ASCII。
EDIT2:我没有意识到您的问题是特定于 C# 的,这里是String.Normalize的文档,它就是这样做的:
string s1 = " "
string s2 = s1.Normalize(NormalizationForm.FormKD)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |