当前位置: 首页 > 知识库问答 >
问题:

如何在C#中正则化汉字?[副本]

萧繁
2023-03-14

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

\p{Han}+

但是,C#无法运行,说未知属性Han

共有3个答案

舒俊雄
2023-03-14

dotnet平台正则表达式匹配汉字:

\p{IsCJKUnifiedIdeographs}+

https://en.wikipedia.org/wiki/CJK_Unified_Ideographs

https://learn . Microsoft . com/en-us/dot net/standard/base-types/character-class-in-regular-expressions # supported-named-blocks

蒋寒
2023-03-14

在.Net中,您需要在Unicode块属性前添加Is

我不知道Han的相应块是什么,或者它是否受支持,但你可以试试:

\p{IsHan}+

有关受支持类型的列表,请参阅MSDN。

这适用于其他字母表。查看希腊语和拉丁语的示例

赫连正初
2023-03-14

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

但是,C#不支持Unicode脚本(但是Unicode类别是可以的。)

它会抛出ArgumentException,如下所示:

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

at System.Text.regularExpressions.RegexCharClass.SetFromProperty(字符串大写,布尔反转,字符串模式)
at System.Text.regularExpressions.RegexCharClass.AddCategoryFromName(字符串类别名称,布尔反转,布尔大小写不敏感,字符串模式)
at System.Text.regularExpressions.RegexParser.ScanBackslash()
at System.Text.regularExpressions.RegexParser.ScanRegex()
at System.Text.regularExPressions.RegexParser.ScanExpressions.comexparser.parse(字符串 re, RegexOptions opsops))
在系统.文本.常规表达式.正则表达式.ctor(字符串模式,正则表达式选项,时间跨度匹配超时,布尔使用缓存
在System.Text.regularExpressions.Regex..咔嚓(字符串模式)

此处引用了详细信息。

 类似资料:
  • 问题内容: 我在使用TensorFlow实现的许多可用神经网络代码中发现,正则化项通常是通过在损耗值上手动添加一个附加项来实现的。 我的问题是: 是否有比手动进行更优雅或推荐的正规化方法? 我也发现有一个争论。应该如何使用?根据我的观察,如果我们向其传递正则化器(例如,将计算表示正则化项的张量并将其添加到名为的图集合中,该集合是否会被TensorFlow自动使用(例如,优化器在训练时使用)?期望我

  • 本文向大家介绍Objective-C中利用正则去除非数字字母汉字方法实例,包括了Objective-C中利用正则去除非数字字母汉字方法实例的使用技巧和注意事项,需要的朋友参考一下 前言 今天碰到个需求,PM要求输入框中取出非字母数字汉字的输入. 带着这个疑问开始今天的文章 准备工作 创建个demo 代码如下 在网上找了一圈大多都是使用谓词去判断时候包含,没有几个给出相应的处理字符串. 我找到了3种

  • 如何简化这个正则呢? 或者是否有其他实现方式(正则)?

  • 我有这段文字: regex: 并且只想保留约翰这个名字(没有引号或任何内容)。我设法获得了约翰,但不幸的是我也得到了\n:http://www.regextester.com/?fam=98328 如何删除后者? 谢谢。

  • 本文向大家介绍C#中如何利用正则表达式判断字符,包括了C#中如何利用正则表达式判断字符的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,下面代码给大家介绍下利用正则表达式判断字符的方法,具体代码如下所示: 以上所述是小编给大家介绍的C#中如何利用正则表达式判断字符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 我有一个将大写/小写字符串转换为大写字符串的正则表达式。问题是,在我的国家,名字中有特殊字符是很正常的,这让我的反应很不舒服 如果我对“JOAO CARLOS NOBREGA”使用此方法,则返回“JOAO CARLOS NOBREGA”。但如果我将此方法用于“JOÃO CARLOS NOBREGA”,则返回“JOÃO CARLOS NOBREGA”。我如何解决这个问题?