Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 正则表达式-搜索包含至少4个字符的字母和数字的单词_Regex - Fatal编程技术网

Regex 正则表达式-搜索包含至少4个字符的字母和数字的单词

Regex 正则表达式-搜索包含至少4个字符的字母和数字的单词,regex,Regex,我正在努力寻找回报,比如 hal9 bet97 78test 但不是 h4t 4444 test h1 基本上,任何包含数字和字母但至少包含4个字符的单词 目前,我正在尝试在一个单词中输入数字和字母 (?=\w*[a-z])(?=\w*[0-9])\w+ 但是我试着把它限制在4个以上的字符 建议?您可以使用 \b(?=\w*[A-Za-z])(?=\w*[0-9])\w{4,}\b 看 如果在正则表达式风格中\w支持Unicode(例如Pythonre),请使用 \b(?=\w*[^\w

我正在努力寻找回报,比如

hal9
bet97
78test
但不是

h4t
4444
test
h1
基本上,任何包含数字和字母但至少包含4个字符的单词

目前,我正在尝试在一个单词中输入数字和字母

(?=\w*[a-z])(?=\w*[0-9])\w+
但是我试着把它限制在4个以上的字符

建议?

您可以使用

\b(?=\w*[A-Za-z])(?=\w*[0-9])\w{4,}\b

如果在正则表达式风格中
\w
支持Unicode(例如Python
re
),请使用

\b(?=\w*[^\w\d)](?=\w*\d)\w{4,}\b
另外,如果您的正则表达式风格支持Unicode属性类,并且需要检查任何Unicode字母,那么可以使用

\b(?=\w*\p{L})(?=\w*\d)\w{4,}\b
其中
\p{L}
匹配任何Unicode字母

详情:

  • \b
    -单词边界
  • (?=\w*[A-Za-z])
    -在任何零个或多个单词字符之后,必须有一个字母
  • (?=\w*[0-9])
    -在任何零个或多个字字符之后,必须有一个数字
  • \w{4,}
    -四个或四个以上的单词字符(字母、数字、连接器标点符号/
  • \b
    -单词边界

似乎以下方法有效:

\b(?!\d+\b|[a-z]+\b)[a-z\d]{4,}\b
或者,如果需要区分大小写:

(?i)\b(?!\d+\b|[a-z]+\b)[a-z\d]{4,}\b
在线查看


  • \b
    -单词边界
  • (?!\d+\b |[a-z]+\b)
    -反向前瞻,以防止1+字母字符1+数字到达单词边界
  • [a-z\d]{4,}\b
    -4+字母数字字符,直到单词边界

编辑:

您还可以通过在“负前瞻”中使用另一个选项来排除带有下划线的子字符串:

\b(?!\d+\b|[a-z]+\b|\w*_)\w{4,}\b
试试
\b(?=\d*[a-z])(?=[a-z]*\d)[\da-z]{4,}\b