我正在寻找满足以下条件的正则表达式:
允许使用字母数字,包括最小和最大限制。
Atleast 1数字是强制性的。
答案 0 :(得分:0)
您可以使用模式[a-zA-Z0-9]
限制字符串中的字母数字,并使用{8,13}
限制最小和最大出现次数。您还可以确保至少有一个数字为数字(?=.*\\d)
和非数字(?=.*\\D)
执行正前瞻模式:
let regex = "^(?=.*\\d)(?=.*\\D)([a-zA-Z0-9]{8,13})$"
正则表达式详细信息
^在字符串
的开头处断言位置(?=。* \ d)•匹配任何字符的正向前瞻 位
(?=。* \ D)•与a的任何字符匹配的正向前瞻 非数字
([a-zA-Z0-9])•首先捕获与任何字母数字字符匹配的组
{8,13}•限制预先设定令牌的出现次数(从8到13)
$断言字符串末尾的位置
let string = "abcdefg1"
if let range = string.range(of: regex, options: .regularExpression) {
print(string[range]) // abcdefg1\n"
}