首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx为4个字符和7个数字。没有特殊字符

RegEx为4个字符和7个数字。没有特殊字符
EN

Stack Overflow用户
提问于 2019-10-16 15:01:56
回答 2查看 413关注 0票数 3

我试图编写RegEx来匹配一些字符串,如ABCD1234567、123ABC456D7或12A34B56C7D。应该有4个字符和7个数字,顺序并不重要。不应该有任何特殊的人物像*,-等等。

我已经试过写这样的东西了。

^[A-Zaz]{4}[0-9]{7}$

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-16 15:13:35

模式^[A-Zaz]{4}[0-9]{7}$按该顺序匹配4次A和7位数字。

您可以使用带量词的查找周围断言:

代码语言:javascript
复制
^(?=(?:[^A-Za-z\r\n]*[A-Za-z]){4})(?=(?:[^0-9\r\n]*[0-9]){7})[A-Za-z0-9]+$
  • 字符串的^开始
  • (?=(?:[^A-Za-z\r\n]*[A-Za-z]){4})断言4个字符A
  • (?=(?:[^0-9\r\n]*[0-9]){7})断言7位数
  • [A-Za-z0-9]+匹配1+乘以列表中的任何一个,或者使用[A-Za-z0-9]{11}来匹配正好11
  • 字符串的$末端

Regex演示

票数 2
EN

Stack Overflow用户

发布于 2019-10-16 15:20:07

我会使用前瞻来检查允许的字符和精确长度,并匹配其他字符。

代码语言:javascript
复制
^(?=[A-Za-z\d]{11}$)\d*(?:\D\d*){4}$
  • (?=[A-Za-z\d]{11}$)前瞻性检查是否准确地检查了11 [A-Za-z\d]
  • \d*(?:\D\d*){4}正好将4个数字与中间的任何\D非数字相匹配。

在regex101上看到这个演示

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58416377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档