Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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-8charminw/1num和1char_Regex - Fatal编程技术网

正在寻找一个regex-8charminw/1num和1char

正在寻找一个regex-8charminw/1num和1char,regex,Regex,我正在寻找一些帮助来创建一个正则表达式,它需要8个字符(至少)和1个数字以及1个字符(不是特殊字符) 示例:a1234567有效,但12345678无效 对一个新手有什么帮助吗 编辑: 感谢您的快速回复-在VB中工作的实现如下所示 Dim ValidPassword As Boolean = Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$") 您确实需要一个包含三个正则表达式的表达式:) 至少提供8个A-Z、A-Z、0-9和

我正在寻找一些帮助来创建一个正则表达式,它需要8个字符(至少)和1个数字以及1个字符(不是特殊字符)

示例:a1234567有效,但12345678无效

对一个新手有什么帮助吗

编辑:

感谢您的快速回复-在VB中工作的实现如下所示

Dim ValidPassword As Boolean = Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$")

您确实需要一个包含三个正则表达式的表达式:)

至少提供8个A-Z、A-Z、0-9和u字符

/\d/ 
查找单个数字

/[A-Za-z]/ 
查找单个字母

因此,在Perl中:

$string =~ /\w{8}/ and $string =~ /\d/ and $string =~ /[A-Za-z]/

您确实需要一个包含三个正则表达式的表达式:)

至少提供8个A-Z、A-Z、0-9和u字符

/\d/ 
查找单个数字

/[A-Za-z]/ 
查找单个字母

因此,在Perl中:

$string =~ /\w{8}/ and $string =~ /\d/ and $string =~ /[A-Za-z]/
差不多

^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$
行得通

剖析:

  • ^
    字符串的开头
  • (?=.[0-9])
    向前看,确保至少有一个数字
  • (?=.[a-zA-Z])
    向前看,确保至少有一个字母
  • \w{8,}
    实际匹配8个以上的字符
  • $
    字符串的结尾
编辑:如果需要额外字符(不包括1个字母的要求),请使用

这将允许使用除换行符以外的任何字符

如果您只希望允许某些字符,请使用您选择的符号将第一个正则表达式中的
\w
替换为
[A-Za-z0-9@$%^&*]

^(?![0-9]$)(?![a-zA-Z!]$)\w{8,}$

类似于

^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$
行得通

剖析:

  • ^
    字符串的开头
  • (?=.[0-9])
    向前看,确保至少有一个数字
  • (?=.[a-zA-Z])
    向前看,确保至少有一个字母
  • \w{8,}
    实际匹配8个以上的字符
  • $
    字符串的结尾
编辑:如果需要额外字符(不包括1个字母的要求),请使用

这将允许使用除换行符以外的任何字符

如果您只希望允许某些字符,请使用您选择的符号将第一个正则表达式中的
\w
替换为
[A-Za-z0-9@$%^&*]


^(?![0-9]$)(?![a-zA-Z!]$)\w{8,}$

尝试以下正则表达式:

这些部分是:

  • (?=[a-zA-Z]*[0-9])
    检查至少一个0-9字符
  • (?=[0-9]*[a-zA-Z])
    检查集合a-Z,a-Z中的至少一个字符
  • ^[0-9a-zA-Z]{8,}$
    检查0-9、a-Z、a-Z至少出现8次的长度
或者只使用基本语法:

^([0-9][a-zA-Z][0-9a-zA-Z]{6,}|[0-9]{2}[a-zA-Z][0-9a-zA-Z]{5,}|[0-9]{3}[a-zA-Z][0-9a-zA-Z]{4,}|[0-9]{4}[a-zA-Z][0-9a-zA-Z]{3,}|[0-9]{5}[a-zA-Z][0-9a-zA-Z]{2,}|[0-9]{6}[a-zA-Z][0-9a-zA-Z]+|[0-9]{7}[a-zA-Z][0-9a-zA-Z]*|[a-zA-Z][0-9][0-9a-zA-Z]{6,}|[a-zA-Z]{2}[0-9][0-9a-zA-Z]{5,}|[a-zA-Z]{3}[0-9][0-9a-zA-Z]{4,}|[a-zA-Z]{4}[0-9][0-9a-zA-Z]{3,}|[a-zA-Z]{5}[0-9][0-9a-zA-Z]{2,}|[a-zA-Z]{6}[0-9][0-9a-zA-Z]+|[a-zA-Z]{7}[0-9][0-9a-zA-Z]*)$

请尝试使用以下正则表达式:

这些部分是:

  • (?=[a-zA-Z]*[0-9])
    检查至少一个0-9字符
  • (?=[0-9]*[a-zA-Z])
    检查集合a-Z,a-Z中的至少一个字符
  • ^[0-9a-zA-Z]{8,}$
    检查0-9、a-Z、a-Z至少出现8次的长度
或者只使用基本语法:

^([0-9][a-zA-Z][0-9a-zA-Z]{6,}|[0-9]{2}[a-zA-Z][0-9a-zA-Z]{5,}|[0-9]{3}[a-zA-Z][0-9a-zA-Z]{4,}|[0-9]{4}[a-zA-Z][0-9a-zA-Z]{3,}|[0-9]{5}[a-zA-Z][0-9a-zA-Z]{2,}|[0-9]{6}[a-zA-Z][0-9a-zA-Z]+|[0-9]{7}[a-zA-Z][0-9a-zA-Z]*|[a-zA-Z][0-9][0-9a-zA-Z]{6,}|[a-zA-Z]{2}[0-9][0-9a-zA-Z]{5,}|[a-zA-Z]{3}[0-9][0-9a-zA-Z]{4,}|[a-zA-Z]{4}[0-9][0-9a-zA-Z]{3,}|[a-zA-Z]{5}[0-9][0-9a-zA-Z]{2,}|[a-zA-Z]{6}[0-9][0-9a-zA-Z]+|[a-zA-Z]{7}[0-9][0-9a-zA-Z]*)$

不错。。。不过,您需要检查下划线,不是吗?目前这需要一个小写-如果我想要一个OR like语句-那么1个小写字符还是1个大写字符?所有其他都是100%,我不确定你要的是什么“A1234567”、“A1234567”和“Aa123456”都与此匹配。你能举一个你想匹配但目前没有匹配的东西的例子吗?啊,你是对的(对不起)-我意识到它不允许任何特殊字符,如$或%-可以允许吗?一些最小化可以是下一个^(?=.*[0-9])(?=.*[A-z])\w{8,}$不错。。。不过,您需要检查下划线,不是吗?目前这需要一个小写-如果我想要一个OR like语句-那么1个小写字符还是1个大写字符?所有其他都是100%,我不确定你要的是什么“A1234567”、“A1234567”和“Aa123456”都与此匹配。你能举一个你想匹配但目前没有匹配的东西的例子吗?啊,你是对的(对不起)-我意识到它不允许任何特殊字符,如$或%-可以允许吗?一些最小化可以是下一个^(?=.[0-9])(?=.[A-z])\w{8,}$