2011-11-21 329 views
1

我需要一個匹配字母數字模式的正則表達式,除了完全數字的模式。Alpha數字正則表達式模式匹配

 
asdfgesod valid 
1asdndwdd valid 
asd124asd valid 
a2asd43bd valid 
123346678 invalid 
+0

我需要[AZ]類 – tuze

回答

3
/^[a-z0-9]*[a-z][a-z0-9]*$/i 

分拆下來:

^[a-z0-9]* - 字符串具有a-z字符

[a-z0-9]*$ - - 字符串結尾字符串與任何數量(包括零)的字母數字字符

[a-z]開始與任何數字(包括零)字母數字字符

+0

正如你可以看到前四個比賽和第五並不像預期一樣:HTTP: //codepad.viper-7.com/HiTFio – Paulpro

+0

當答案很簡單時,我感到很無聊。我嘗試了很多荒謬的事情。非常感謝。你從無盡的頭痛中拯救了我。 – tuze

+0

@tuze不客氣。如果您不希望(大寫)'A-Z'被視爲字母字符,也不要在末尾加入'i'。 – Paulpro

0

在java的情況下使用StringUtils.isNumeric(String value)檢查字符串是否只包含數字。

順便說一句:如果字符串匹配正則表達式:"^\d*$"這意味着它只包含數字。

0

你可以試試:

/^(?![0-9]+$)[a-z0-9]+$/i 

See it

[a-z0-9]+$確保字符串是由字母數字字符。

負向預測(?![0-9]+$)確保字符串不是全部數字。

0

解決方法是首先檢查字符串是否只包含數字,如果不檢查字符串的其餘部分。下面的正則表達式將做到這一點:

^(?![\d]+$)[a-z0-9]+$ 

看到它在這裏的行動:http://regexr.com?2v8n5