2011-11-21 327 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