Regex表示至少有一个数字的字母数字



我正在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方言中在字符类中使用字面破折号的唯一方法。(

相关内容

最新更新