首页 > 解决方案 > 如何在 C# 中正则表达式中文字符?

问题描述

我正在尝试使用 C# 中的正则表达式来匹配中文字符。

\p{Han}+

但是C#运行失败,说Unknown property Han

标签: c#regex

解决方案


理论上我们可以通过正则表达式的Unicode Script来完成要求。

但是,C# 不支持 Unicode 脚本(但 Unicode 类别很好。)

它会像这样抛出ArgumentException

[System.ArgumentException: 解析“\p{Han}+” - 未知属性 'Han'。]

在 System.Text.RegularExpressions.RegexCharClass.SetFromProperty(String capname, Boolean invert, String pattern)
在 System.Text.RegularExpressions.RegexCharClass.AddCategoryFromName(String categoryName, Boolean invert, Boolean caseInsensitive, String pattern)
在 System.Text.RegularExpressions。 RegexParser.ScanBackslash()
在 System.Text.RegularExpressions.RegexParser.ScanRegex()
在 System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
在 System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions
System.Text.RegularExpressions.Regex..ctor(String pattern) 处的选项、TimeSpan matchTimeout、Boolean useCache )

详细信息参考here


推荐阅读