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