2013-05-17 154 views
2

我用这个字阿拉伯词与以“#”结尾的正则表达式匹配?

/(?!\b)(#\S+\b)/ 

需要后“#”一切事物的开始,如果有匹配它的“#”。

但现在我需要找到以“#”结尾的所有阿拉伯词或开始如何找到所有以“#”结尾的单词?

我尝试\b[A-Za-z]*#\b但不工作:(

+0

[A-ZA-Z]将不会匹配任何阿拉伯字母。 –

+0

语言是什么? – nhahtdh

+1

@nhahtdh呃...阿拉伯语... – Bojangles

回答

6

[A-Za-z]将匹配ASCII alphabets..You需要指定的unicode阿拉伯范围来匹配阿拉伯语词汇

你可以试试这个

\b[\u0600—\u06FF]+#(?=\s|$) 

This对阿拉伯语unicode范围来说是一个不错的参考..


[\u0600—\u06FF]覆盖了包括数字,数字符号完整的Unicode阿拉伯范围...

如果你想匹配阿拉伯字母只能使用此范围

[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF] 
+0

谢谢你......但是我还是有问题......当我为我的脑海里写'阿拉伯语'时,'#'是在单词的结尾,但实际上是对于算法。嗨在单词的开头。因为'右到左'的扭动规则...穆老功能不会工作/(?!\ b)(#\ S + \ b)/ – despotbg

+0

我需要确定'وةىةى#'从'بسشبسشبسشبسش#وةىةىوةىسش '它的技巧就是编写:( – despotbg

+0

现在我只用'#+ \ S + /',从右到左打字时很难识别空格,我做了哈希标记,我需要确定是否有人输入了阿拉伯语 – despotbg

1

要匹配阿拉伯字,你应该只用阿拉伯字母。

\u0621-\u063A\u0641-\u064A\u0660-\u0669\s 

你的正则表达式是:

\b[\u0621-\u063A\u0641-\u064A\u0660-\u0669\s]*#\b 
相关问题