Swift:正则表达式允许使用带有一个强制数字的字母数字

时间:2017-03-20 00:48:12

标签: regex swift

我正在寻找满足以下条件的正则表达式:

  • 允许使用字母数字,包括最小和最大限制。

  • Atleast 1数字是强制性的。

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"
}