我需要一个4个字符的正则表达式。前3个字符必须是数字,最后1个字符必须是字母或数字。
我组建了这个,但它不起作用
^([0-9]{3}+(([a-zA-Z]*)|([0-9]*)))?$
一些有效的匹配:889A
,777B
,8883
答案 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或任何数字的字符。