将字母和数字匹配在一起或仅匹配字母的正则表达式

Posted

技术标签:

【中文标题】将字母和数字匹配在一起或仅匹配字母的正则表达式【英文标题】:RegEx that matches letters and numbers together or letters only 【发布时间】:2019-05-16 10:39:37 【问题描述】:

尝试构建符合这些条件的正则表达式,但找不到线索:

1) 字母和数字一起

2) 仅字母

3) 不允许单独使用数字

4) 整个字符串长度必须在 3 到 7 个字符之间。

5) 同时在字符串的任何位置(开头、中间或结尾)允许有空格,不允许像在 33 33 中那样单独使用数字,但单独的空格不是(例如当您输入 3 个空格时)

示例匹配:

1w1

e3e

我们

123(不匹配)

11e

e11

111 33r

哎呀哎呀

eee e33

【问题讨论】:

您当前的正则表达式有什么问题? 【参考方案1】:

根据您的规则,您可以使用此正则表达式,

^(?![\d ]*$)[a-zA-Z0-9 ]3,7$

Regex Demo

【讨论】:

它不满足规则号 3 和 5,即此字符串不能匹配:555 55 @JAHelia:确实如此。如果所有字符都是数字,它将拒绝该字符串。并且满足规则 5。Check my demo 如果这些数字之间有空格,它就像 44 44 一样满足,其中 44 44 不能匹配的要求 (?![\d ]+$) 代替(?! *\d+( *\d+)* *$) 不是更容易吗? @JAHelia:这个字符集[a-zA-Z0-9 ] 已经不允许任何特殊字符,只允许在允许的字符集中使用字母数字和空格。

以上是关于将字母和数字匹配在一起或仅匹配字母的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配指定数据和字母

PHP中正则表达式匹配字母

正则表达式匹配至少包含一定比例数字的行:字母

求js验证字母数字的正则表达式,且是字母开头的

正则表达式匹配字母和数字,其中一些符号可以出现在它们之间

正则表达式匹配字母数字和空格