Regex 需要至少包含一个数字、零个或多个字母、无空格、最小值/最大值的正则表达式

Regex 需要至少包含一个数字、零个或多个字母、无空格、最小值/最大值的正则表达式,regex,Regex,我需要一个正则表达式,它将匹配包含以下内容的字符串: 至少一个数字 零个或多个字母 没有其他字符,例如空格 字符串还必须至少为8个字符,最多为13个字符 数字和/或字母在8-13字符串中的位置无关紧要。我还没有弄清楚如何确保字符串包含一个数字,但这里有一些表达式不起作用,因为它们在在线工具Regexr中拾取空格。请看下面: - ([\w^/s]){8,13} - ([a-zA-Z0-9]){8,13} - ([a-zA-Z\d]){8,13} 我特别希望排除空格和特殊字符。链接问题和

我需要一个正则表达式,它将匹配包含以下内容的字符串:

  • 至少一个数字
  • 零个或多个字母
  • 没有其他字符,例如空格
字符串还必须至少为8个字符,最多为13个字符

数字和/或字母在8-13字符串中的位置无关紧要。我还没有弄清楚如何确保字符串包含一个数字,但这里有一些表达式不起作用,因为它们在在线工具Regexr中拾取空格。请看下面:

 - ([\w^/s]){8,13}
 - ([a-zA-Z0-9]){8,13}
 - ([a-zA-Z\d]){8,13}

我特别希望排除空格和特殊字符。链接问题和相关问题似乎都考虑到了这些字符。这不是为了验证密码,而是为了在自然语言处理中检测案例编号。这与“至少6个字符、至少一个字母和一个数字且可能包含特殊字符的密码正则表达式”不同,因为我要查找的是至少一个数字,但不是零个或多个字母。我也不想返回包含任何特殊字符(包括空格)的字符串。

这是符合您要求的典型密码验证。
请注意,这也将匹配8-13位数字(但需要)

1000万+1(正在计算)快乐客户

^(?=.*\d)[a-zA-Z\d]{8,13}$

解释

 ^                     # Beginning of string
 (?= .* \d )           # Lookahead for a digit
 [a-zA-Z\d]{8,13}      # Consume 8 to 13 alphanum characters
 $                     # End of string

我在互联网上到处都能看到上面(sln)的答案,但据我所知,这并不准确

如果字符串包含8到13个不带数字的字符,此表达式将与之匹配,因为它在正向前瞻中的通配符
上使用了
*
量词

要在至少8个字符长的密码中匹配至少1位数字、1
A-Z
和1
A-Z
,您需要以下内容:

(?=.{1,7}\d)(?=.{1,7}[a-z])(?=.{1,7}[A-Z])[a-zA-Z\d]{8,13}
它使用3个lookahead:

(?=.{1,7}\d)
(?=.{1,7}[a-z])
(?=.{1,7}[A-Z])
每次,它都会查找目标(如第一个数字),但允许其前面的任何字符出现1到7次。 然后它将匹配8到13个字母数字字符

Powershell用户注意: 使用搜索组可以提取结果

$password = [regex]::match($string-to-search,'(?=.{1,7}\d)(?=.{1,7}[a-z])(?=.{1,7}[A-Z])([a-zA-Z\d]{8,13})').Groups[1].Value

我特别希望排除空格和特殊字符。链接问题和相关问题似乎都考虑到了这些字符。这不是为了验证密码,而是为了检测自然语言处理中的案例号。1000万个密码验证正则表达式问题都是这样回答的,但这一个是重复的?你一定是在开玩笑。使用这个
^(?=.*\d)[a-zA-Z\d]{8,13}$
非常感谢@sln,这很有效!!我看不出有任何选项可以对你的答案进行投票。@sln:发布你的答案。谢谢。我的第一个问题是,我正在收集空间。答案看起来与我的第三次尝试类似,但我现在看到“consume alpahnum”部分周围有括号,这可能导致了问题。考虑到匹配文档中字符串的目的,使用单词边界(\b或类似的,可能是空格+点字字符类)锚定可能比克拉/美元更有用。:)@dannysauer—
^$
是一个包罗万象的边界构造。它说:“因为人们对正则表达式的理解还不足以解释复杂的边界概念,所以使用了基本的开始/结束锚定。”@dannysauer——实际上,任何在字符之间运行的构造都是一个复杂的实体。短语
zero-width
是bulls**t,因为构造的内容与其他内容匹配,只是在不同的帧上。不需要3个lookahead。此外,您的正则表达式匹配
%*!:;123abcABC-“
不需要,但与所需的不匹配。请重新阅读问题。