【问题标题】:Regex for Hebrew and symbols希伯来语和符号的正则表达式
【发布时间】:2014-09-26 14:11:15
【问题描述】:

我需要一个只能接受希伯来字母和至少一个空格字符的表达式。

我对希伯来字母进行了尝试,但它与带有希伯来文本和空格的句子不匹配:

result = Regex.IsMatch(txtName.Text, @"[\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA]");

如何在正则表达式中表示所有希伯来字母和至少一个空格字符?

【问题讨论】:

  • 你有什么尝试吗?一个小建议:如果你尝试了任何东西......发布它,你不会被否决!希伯来字符的 UNICODE 范围是从0x05900x05ff,空格可以用\s 表示,而+ 你需要其中的一个或多个...这个正则表达式应该匹配它:[\u0590-\u05ff]+\s+跨度>
  • 旁注:“尝试了很多”并没有真正表现出任何努力。即使是显示您实际尝试过的单个示例代码行也可能会避免所有下注。如果您决定将其添加到您的帖子中,“搜索​​了很多”也是如此 - 显示您的搜索查询/您找到的最佳结果,并且很清楚出了什么问题(所有人都会知道您正在搜索 dinsney.com)。
  • @AdrianoRepetti - 问题现在看起来很真实 - 考虑发布您的评论作为答案,gunr2171 建议也显示了更好的方法 - 应该重复(但我已经用完了我的投票:))
  • @AdrianoRepetti 我尝试了你的建议,它只有在我有一个词的情况下才有效。如果我输入一个要检查的句子,而其他单词是英文,则标志会“升起”..如何解决它,这将适用于许多单词?

标签: c# regex hebrew


【解决方案1】:

您正在寻找类似于@"[\p{IsHebrew} ]+" 的表达式 - 至少有一个希伯来语或空格字符。要匹配整个句子 - 添加开始/结束锚点 - @"^[\p{IsHebrew} ]+$".

详细解释见regular expression with hebrew or englishC#/.Net Character Classes in Regular Expressions

【讨论】:

  • +1 for \p{IsHebrew},我应该记得密切关注标记为 [regex] 的每个问题,总有一些新东西要学习...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
  • 2015-12-11
  • 2020-04-12
  • 2015-06-18
相关资源
最近更新 更多