我想有一個匹配的正則表達式:匹配阿拉伯文/英文字母使用正則表達式
- 阿拉伯字母。
- 列表項目
- 英文字母數字。
- 3最大空間。
- 4下劃線最大。
任何順序。
我試過不同的解決方案,但無法解決它。
這裏是我現在有:
preg_match('@^([^\W_]*\s){0,3}[^\W_]*[email protected]', $username)
上述表達式允許:
- 3位最大
- 英語alpanumerics
- 沒有下劃線允許
我想有一個匹配的正則表達式:匹配阿拉伯文/英文字母使用正則表達式
任何順序。
我試過不同的解決方案,但無法解決它。
這裏是我現在有:
preg_match('@^([^\W_]*\s){0,3}[^\W_]*[email protected]', $username)
上述表達式允許:
我不知道阿拉伯字符,但下面的正則表達式應該與其他
([a-zA-Z0-9]{1,})\s{0,3}_{0,4}
這將匹配 (字母)(0-3位)(0-4下劃線)
如果超過4個下劃線,最後一個將被省略 如果超過3個空格,則3個空格後的部分將被忽略。
編輯: 阿拉伯語字母:首先聲明包含所有阿拉伯字母 一個字符串,所以你必須
$arabic='all_arabic_letters';
那麼你的正則表達式的字符串將
$regex='[' . $arabic . ']{1,}([a-zA-Z0-9]{1,})\s{0,3}_{0,4}';
,並按如下與之匹敵:
preg_match($regex, $username);
%90幫了...... – user311509
您可以檢查您的Regex風味是否支持此\p{Arabic}
或\p{InArabic}
。
還與mb_ereg_match實驗()函數:http://si2.php.net/manual/en/function.mb-ereg-match.php
如果不工作,沒有比寫明確所有阿拉伯字母到表達沒有其他選擇。凌亂,但做的工作。
由於您使用的是PHP,您可以先將所有阿拉伯字符列入字符串變量,然後將該變量添加到正則表達式中,以實現代碼可管理性。
他可以看看這裏:[我如何在php中使用正則表達式匹配阿拉伯文字母](http://stackoverflow.com/questions/4145742/how-can-i-match-arabic-letters-using-regexp-in-php ) – xanatos
是的。如果他的正則表達式風格(版本)支持unicode。如果沒有,他必須使用我的2.nd解決方案。 –
阿拉伯字母 - 我正確理解你嗎?你的意思是這樣的:呃?您是否有任何疑問? – ZigZag
以任何順序?是「a_o _e _u」還好,「_a_o_h_t _」不好,「你好」不好嗎?或者應該首先來信,然後空格,然後下劃線? – erikH
[我如何在php中使用正則表達式匹配阿拉伯文字母](http://stackoverflow.com/questions/4145742/how-can-i-match-arabic-letters-using-regexp-in-php) – hakre