Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于至少有一个数字的字母数字的正则表达式_Regex_Vbscript - Fatal编程技术网

Regex 用于至少有一个数字的字母数字的正则表达式

Regex 用于至少有一个数字的字母数字的正则表达式,regex,vbscript,Regex,Vbscript,我正在寻找Vbscript中发票编号的正则表达式 它可以有字母数字,但必须至少有一个数字 我使用下面的正则表达式,但它也匹配ALPHA字符串。它需要至少有一个数字 \b(?=.*\d)[A-Z0-9\-]{5,12}\b 应为匹配字符串 1233444 M62899M M828828 783838PTE A751987 应为不匹配字符串 发票 ubb62727 XYZ 123 如果我们使用[A-Z0-9]*[0-9]+[A-Z0-9]*,我无法指定长度 请推荐一个合适的正则表达式。请注意,它与

我正在寻找Vbscript中发票编号的正则表达式 它可以有字母数字,但必须至少有一个数字

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

\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

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

添加一个以字符串锚点^or\a:^?*\d开头的正向前瞻。查看一下@Lankymart,建议的副本中的要求非常不同。@tripleee这些要求可能是,但是,如何将数字分组、排除某些字符等的实现是完全相同的。我不是说这是一个解决方案,但它展示了他们如何构造正则表达式以获得所需的输出。原则是完全相同的,两者都试图识别发票号码。发票号码的性质意味着它们不完全相同。语言标签在这里是合适的。它提供了询问者使用的regex引擎的上下文,并告诉回答者预期的解决方案应该使用什么语言。请停止并停止任何进一步的回滚。如果你想进一步讨论这个问题,请把它带到。