2012-11-21 126 views
1

所以我的论坛允许我使用正则表达式来允许某些用户名注册,但是我想做相反的事情并且阻止任何不匹配,系统本身不允许这样做。正则表达式不匹配名称

我该如何不是匹配[a-zA-Z]+[0-9]{4}的模式?

含义,它会返回错误,说

FOobar1234 
bar5678 

我试过,但不能得到这个工作。


排序怎么样[^a-zA-Z]+的将返回false为foobar(匹配a-z),但在最后4个位数了。

+0

哪里是语言标签! – Anirudha

回答

2

你可以利用式断言的:

^(?![a-zA-Z]+[0-9]{4}$) 

一般:

^(?!<pattern>$) 

比赛只有那些字符串不匹配正则表达式<pattern>

See it

3

使用负前瞻:

^(?![a-zA-Z]+\d{4}) 

注意,这实际上并不匹配的文本,它如果字符串是否符合你的标准,只是返回一个零宽度匹配。如果你想匹配文本以及使用:

^(?![a-zA-Z]+\d{4}$).+$