首页 > 解决方案 > 如何查找长度为 5 且恰好包含一个数字和 4 个字母的所有字符串

问题描述

我需要正则表达式来计算长度为 5 且恰好包含一个数字 ( 0-9) 和 4 个字母 ( a-z) 的字符串。

我成功地只找到了字母,^[a-z]{5}$但我不知道我能告诉它找到只有一个数字的字符串。

例如:

jlwk6    -> one number
bjkgp
5fm8s
x975t
k88q5
zl796
qm9hb    -> one number
h6gtf    -> one number
9rm9p
jwzw2    -> one number

Total: 4

标签: regex

解决方案


您可以使用

^(?=.{5}$)[a-z]*\d[a-z]*$

查看正则表达式演示

细节

  • ^- 字符串的开始
  • (?=.{5}$)- 字符串中必须有 5 个字符(换行符除外)
  • [a-z]*- 0+ 小写 ASCII 字母
  • \d- 一个数字
  • [a-z]*- 0+ 小写 ASCII 字母
  • $- 字符串结束。

要将解决方案扩展到 N 位,请使用

^(?=.{5}$)[a-z]*(?:\d[a-z]*){N}$

在这里,[a-z]*(?:\d[a-z]*){N}将匹配 0+ 个字母,然后匹配 N 次出现的数字,后跟 0+ 个字母。


推荐阅读