c# - 如何在 C# 中正则表达式中文字符?
问题描述
我正在尝试使用 C# 中的正则表达式来匹配中文字符。
\p{Han}+
但是C#运行失败,说Unknown property Han
解决方案
理论上我们可以通过正则表达式的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。
推荐阅读
- bash - 如何让 Bash 将变量解释为字符串进行比较?
- reactjs - 如何使用 Webpack 中定义的环境变量?
- php - Eloquent hasManyThrough a belongsTo 关系?
- swift - 在主线程上使用 NSLock 安全吗?
- java - Hibernate-search 按数字列表搜索
- php - Slack 传入 Webhook - 更改操作 URL?
- ios - Compute Kernel Metal - 如何检索结果和调试?
- php - 唯一受支持的密码是具有正确密钥长度的 AES-128-CBC 和 AES-256-CBC
- java - 无法声明数组大小
- c# - 异步操作后变量未填充