我正在尝试为消费者产品模型制作正则表达式。
我有这个正则表达式:([a-z]*-?[0-9]+-?[a-z]*-?){4,}
我希望将整个特殊字符串限制为4或更多,但会发生的情况是限制仅适用于数字。
所以这个示例匹配:E1912H
虽然不匹配:EM24A1BF
虽然两者都匹配。
你能告诉我我做错了什么,或者如何限制整个特殊字符串而不仅仅是数字?
限制:
1-字符串包含至少1位数字
2-字符串可以包含字符
3-字符串可以包含“ - ”
4-最小长度= 4
答案 0 :(得分:1)
到目前为止您的条件摘要:
以下正则表达式满足所有要求:
^(?=.*\d)([A-Za-z0-9-]+){4,}$
注意:^
和$
符号表示验证整个输入字符串。如果情况并非如此,请改变这一点。
答案 1 :(得分:0)
它无法匹配...... EM24A1BF包含EM,它们是2 [a-z],而不是1作为你的正则表达式状态。 像这样的东西
[a-z]*-?\d+-?[a-z]*-?\d*[a-z]+
匹配你的表达式和所有这些:
为确保您的字符串符合您的要求(字符的位置和构图以及长度要求),您需要使用non-consuming regular expression
答案 2 :(得分:0)
检查出来
([\w-]*\d+[\w-]*){4,}
它匹配以下
32ES5200G
LE32K900
N55XT770XWAU3D