使用正则表达式查找阿拉伯语单词

时间:2016-07-30 07:22:23

标签: javascript regex arabic summernote non-english

我使用此模式查找字符串中的任何单词: \ B(\ W {1,})

但这不能找到阿拉伯语单词。如何更改此模式以查找英语和阿拉伯语单词?

由于

3 个答案:

答案 0 :(得分:1)

Regex \ w是A-z,0-9和_(下划线)的别名,与阿拉伯语unicode范围不匹配。要包含A-z以外的字符,您需要指定它们,例如

[A-z\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]+

有关字符代码的说明,请参阅Match Arabic word with regex that ends with “#”?

答案 1 :(得分:0)

如果您的文字只包含英文和阿拉伯文,并且您想对结果进行排序,则可以使用以下内容:

([^x00-\x7F ]+)表示阿拉伯语文字,其中:(\w+)表示英文文本

第一部分捕捉除英语集之外的所有字符加上空格;第二部分捕获英文字符(加_)。

答案 2 :(得分:0)

像smirnov说的那样,你正在使用的正则表达式只能找到拉丁字符串。对于阿拉伯语,你应该使用[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufbc1]|[\ufbd3-\ufd‌​3f]|[\ufd50-\ufd8f]|‌​[\ufd92-\ufdc7]|[\uf‌​e70-\ufefc]|[\uFDF0-‌​\uFDFD](它应该找到所有的阿拉伯字符,甚至是像؁那样奇怪的字符。)

根据您尝试做的事情,您可能希望将字符串拆分为列表并以此方式处理(这是我在处理混合语言文本时通常最终会做的事情)。然后,您可以识别每个单词的语言并进行相应的处理。