将字母和数字匹配在一起或仅匹配字母的正则表达式
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 ]
已经不允许任何特殊字符,只允许在允许的字符集中使用字母数字和空格。以上是关于将字母和数字匹配在一起或仅匹配字母的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章