regex - 如何查找长度为 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
解决方案
您可以使用
^(?=.{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+ 个字母。
推荐阅读
- c# - 通过 C# .NET 应用程序调用时无法识别命令,但直接调用时有效
- r - 使用 ShinyFiles::ShinyFileChoose() 访问网络驱动器上的文件时出现问题 - parseFilePaths() 函数返回 NA
- upgrade - Apache Ignite 从 1.8 升级到最新版本
- angular - 如何取消 Ag-grid OnFilterChanged 事件?
- javascript - Swiper.js 延迟图像加载在移动设备上以错误的高度启动
- r - 将每一行连接到 R dplyr 中的整个第二个表
- elasticsearch - Elasticsearch 查询以获取属性出现次数最少的文档列表
- javascript - 有没有办法在javascript中制作一个双输入提示框?(举例)
- html - 请问如何将标签和输入放在同一行?
- android - 我可以在编译最低 SDK 21 的同时使用 Navigate Compose 吗?