【问题标题】:Regex for Persian with numbers and words [duplicate]带有数字和单词的波斯语正则表达式[重复]
【发布时间】:2017-01-04 11:50:44
【问题描述】:

如何以原始格式(例如٠٠:٥٣)获取以下字符串中的波斯数字。

+بیسبب+
یبسب به یبیسب ٩٥٧,٠٩٠*+ ذرزذر  بللبل ٢٤٧,٠٠٠ 
بسبس: ٩٥٧,٠٩٠
بسبس: ٩٥٧,٠٩٠
٠٠:٥٣ ٩٧,٠٦,٠٧

我还需要波斯语单词。 我写了这个正则表达式,但它不正确。

([\d{\u0660-\u0669}\,])+

【问题讨论】:

  • 如果您认为不懂波斯语的人可以提供帮助,您可能想为我们这些在看到波斯语数字时无法分辨的人解释一下。
  • 您的问题并不完全清楚。该字符串的最终输出应该是什么?我说波斯语,那个字符串对我来说毫无意义。
  • 您的问题同时被标记为 Java 和 JavaScript,但这两种语言的答案会不会不同?
  • 在 Java 正则表达式中,我相信 \d 仅捕获 0 到 9 的 ASCII 数字。\d{6,9} 应该捕获 6 到 9 位数字。我不相信你可以用 Unicode 转义符代替数字。最后,\, 没有具体含义。
  • 这是一个您可以使用的小型 Java 示例。它似乎工作。您可以使用发布的答案来摆弄字符范围:ideone.com/pGorwZ

标签: javascript java regex


【解决方案1】:

要捕获数字,您可以使用:

([\u0660-\u0669\,]+)

如果您希望代码更易于理解,也可以枚举所有数字:

([٠١٢٣٤٥٦٧٨٩\,]+)

这将仅捕获数字。

对于波斯文字,我真的不知道使用的波斯字符是什么,所以我将取范围从\u0600到\u065F,然后从\u066E到\u06D5

([\u0600-\u065F\u066E-\u06D5]+)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-23
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多