我一直在尝试通过C#中的RegEx.Split()
方法将字符串拆分为另一个字符串。
数据或分离器都可能有变音符号。
让我举个例子:
数据: education
分离器: dù
预期结果: e
/ du
/ cation
- 或 -
数据: èdùcation
分离器: ed
预期结果: èd
/ ùcation
有可能吗? 如果是的话,你能帮我写一下这个模式吗?
答案 0 :(得分:1)
.NET的正则表达式引擎中没有“忽略变音符号”的选项,但是可以通过使用Unicode普通形式-D(用于“分解”)来解决它。 这是未经测试的。
重音字符可以用两种方式表示:
因此,如果您确保输入数据被分解(使用String.Normalise(normalization)
传递NormalizationForm.FormD
),并且模式中任何可能重音的字符都被替换为
B\p{Mc}*
基本字符B
,后跟Unicode类别“Mark,Spacing Combining”中的零个或多个代码点。
要在输出中包含与正则表达式匹配的文本,请将其捕获,以便匹配并捕获du
和dù
使用(du\p{Mc}*)
。