至少有一位数字的字母数字的正则表达式

Regex for alphanumeric with at least one digit

我正在为 发票编号 在 Vbscript 中寻找 regex 它可以包含字母数字,但必须至少有一个数字。

我正在使用下面的正则表达式,但它也匹配 ALPHA 字符串 INVOICE。至少需要一位数字

\b(?=.*\d)[A-Z0-9\-]{5,12}\b

预期匹配字符串

1233444
M62899M
M828828
783838PTE
A751987

预期的不匹配字符串

INVOICE
ubb62727
XYZ
123

如果我们使用([A-Z0-9]*[0-9]+[A-Z0-9]*),我无法指定长度。

请建议一个合适的正则表达式。请注意它与建议的副本完全不同,因为要求,格式不同。

如果有必要,您前瞻中的毯子 .* 将愉快地跳过尾随 \b。让它更受约束,所以它不能。

\b(?=[-A-Z]*\d)[A-Z0-9-]{5,12}\b

(我删除了 - 之前的反斜杠;如果你真的想允许文字反斜杠,显然将它添加回前瞻中的字符 class。开头有破折号或字符的结尾 class 是明确的,不需要反斜杠转义;这也是在许多正则表达式方言中的字符 class 中使用文字破折号的唯一方法。)