如何检测字符串中是否包含字符和单词计数的hindi(devnagri)

时间:2016-12-28 05:41:27

标签: regex powershell unicode hindi

下面是一个示例字符串 -

$string = "abcde वायरस abcde"

我需要检查天气这个字符串是否包含任何印地语(梵文)内容,如果是,则包含字符和单词的数量。我想unicode字符类的正则表达式可以工作http://www.regular-expressions.info/unicode.html。但我无法弄清楚正确的正则表达式语句。

1 个答案:

答案 0 :(得分:4)

要找出,如果字符串包含印地语(梵文)字符,则需要包含所有印地语字符的完整列表。根据{{​​3}},印地语字符是0x09000x097F之间的十六进制字符(小数2304到2431)。

正则表达式模式需要匹配,如果这些字符中的任何一个在集合中。因此,您可以使用模式(实际上是一组字符)来匹配字符串,如下所示:

[\u0900\u0901\u0902 ... \u097D\u097E\u097F]

因为手动编写这个字符列表相当麻烦,你可以通过迭代从2304到2431或十六进制字符的十进制字符来生成这个字符串。

要计算包含至少一个印地语字符的所有单词,您可以使用以下模式。它包含单词周围的空格(\s)或单词周围的开头(^)或结尾($),以及全局标记,以匹配每个出现的位置({ {1}}):

/g ... /(?:^|\s)[\u0900\u0901\u0902

以下是JavaScript中的实时实现:

\u097D\u097E\u097F]+?(?:\s|$)/g