Hen*_*n17 6 c# regex normalization utf-16
我有以下示例代码:
var inputString = "ñaáme";
inputString = inputString.Replace('ñ', '\u00F1');
var normalizedString = inputString.Normalize(NormalizationForm.FormD);
var result = Regex.Replace(normalizedString, @"[^ñÑa-zA-Z0-9\s]*", string.Empty);
return result.Replace('\u00F1', 'ñ'); // naame :(
Run Code Online (Sandbox Code Playgroud)
我需要规范化文本而不删除"ñ"
我按照这个例子 但它是针对Java的,它对我没用
我希望你的结果是:"ñaame".
您可以ñ使用(?i)[\p{L}-[ña-z]]+正则表达式匹配除特定字母和ASCII字母(不需要规范化)之外的任何Unicode字母并对其进行标准化.然后,还删除字符串中的任何组合标记.
使用
var inputString = "ñaáme";
var result = string.Concat(Regex.Replace(inputString, @"(?i)[\p{L}-[ña-z]]+", m =>
m.Value.Normalize(NormalizationForm.FormD)
)
.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
Console.Write(result);
Run Code Online (Sandbox Code Playgroud)
请参阅C#演示
图案描述
(?i) - 忽略大小写修饰符[ - 开始一个角色类
\p{L} - 任何Unicode字母-[ - 以外
ña-z- ñ和ASCII字母] - 减法类的结尾]+ - 一次或多次发生.| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |