前4个字符的正则表达式

时间:2013-10-28 09:52:07

标签: regex

我需要一个4个字符的正则表达式。前3个字符必须是数字,最后1个字符必须是字母或数字。

我组建了这个,但它不起作用

^([0-9]{3}+(([a-zA-Z]*)|([0-9]*)))?$

一些有效的匹配:889A777B8883

3 个答案:

答案 0 :(得分:5)

  

I need a regular expression for first 3 will be a number and the last 1 will be a alphabet or digit

这个正则表达式应该有效:

^[0-9]{3}[a-zA-Z0-9]$

这假定字符串的长度只有4个字符。如果不是这种情况,请删除行尾锚$并使用:

^[0-9]{3}[a-zA-Z0-9]

答案 1 :(得分:4)

试试这个

这将在任何地方匹配。

\d{3}[a-zA-Z0-9]

这只匹配字符串的开头

^\d{3}[a-zA-Z0-9]

您也可以尝试使用此网站:http://gskinner.com/RegExr/

这使得创建和测试正则表达式非常容易。

答案 2 :(得分:1)

把星星拿走......

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

星星在它之前意味着零或更多的东西。您已经使用了或(|),因此您希望仅匹配其中一个类,或者其中一个类,而不是该类的零个或多个,或者另外一个或多个。

当然,它可以进一步简化:

^\d{3}[a-zA-Z\d]$

字面意思是......三位数字,后面是小写或大写字母a-z或任何数字的字符。