我正在为包含1到4个非零数字字符或1到4个非零数字字符和1个字母的字符串编写正则表达式,但我仍然坚持如何将字母字符的长度固定为1。
"(^[1-9]{1,4}$|^[[a-zA-Z][1-9]{1,4}]$)"
我试过这种方式,但它不起作用;它仅验证由1到4个非零数字字符组成的字符串。
答案 0 :(得分:2)
^(?:\d{1,4}|(?=\d*[a-zA-Z]\d*$)[\da-zA-Z]{2,5})$
你需要一个lookahead
。参见演示。
答案 1 :(得分:0)
通常,您最好的机会是使用在线工具测试您的正则表达式,例如http://www.regexr.com/。
此外,您尝试实现的目标可以这样做:([a-zA-Z]?[1-9]{1,4})
解释:
[a-zA-Z]
表示a-z字母字符?
表示前一组中的0或1(测试中缺少的内容)[1-9]{1,4}
表示1至4个数字字符,如您所述