我正在Vbscript中为发票号寻找正则表达式它可以有字母数字,但必须至少有一个数字。
我使用下面的regex,但它也匹配ALPHA字符串INVOICE
。它需要至少有一个数字
b(?=.*d)[A-Z0-9-]{5,12}b
预期匹配字符串
1233444
M62899M
M828828
783838PTE
A751987
预期的不匹配字符串
发票
ubb62727
XYZ
123
如果我们使用([A-Z0-9]*[0-9]+[A-Z0-9]*)
,我无法指定长度。
请建议一个合适的正则表达式。请注意,根据要求,它与建议的副本完全不同,格式也不同。
如果必须的话,您的前瞻中的覆盖.*
会很高兴地跳过后面的b
。让它更受约束,这样它就不能了。
b(?=[-A-Z]*d)[A-Z0-9-]{5,12}b
(我删除了-
之前的反斜杠;如果你真的想允许一个字面反斜杠,显然也可以将其添加回前瞻中的字符类。字符类开头或结尾的破折号是明确的,不需要反斜杠转义;这也是在许多regex方言中在字符类中使用字面破折号的唯一方法。(