【发布时间】:2016-10-26 15:31:26
【问题描述】:
如何检查给定字符串是否包含 X 个大写字母、Y 个数字和 Z 个非单词字符?这些数字必须在正则表达式中定义。
例如
hereisMy1String
它是否包含:2 个数字(或任何给定数字)、2 个大写字母(或任何给定数字)和一个非单词字符(或多个)?
数字/字母/字符可以在字符串中的任何位置。
【问题讨论】:
-
你需要像
^(?=(?:\D*\d){2})(?=(?:[^A-Z]*[A-Z]){2})(?=(?:\w*\W){1})这样的东西 -
这取决于您所说的“不工作” - ideone.com/91izLw。您提供的字符串没有非单词字符。
-
这是一个经典案例,不要在一个表达式中执行。如果您不尝试强制执行,代码将变得容易阅读一百万倍。
标签: regex