到目前为止,我一直在使用一个功能来验证电子邮件格式和密码
func isRegexValid(string:String,regex:String) -> Bool {
return NSPredicate(format: "SELF MATCHES %@", regex).evaluate(with: string)
}
我试图检查某种模式并遇到了问题。我正在寻找一个带有 4 个逗号分隔符的字符串,后跟“ext”
^(.*,){4}ext
上述函数无法按预期处理此问题,因此我尝试了一种效果很好的替代方法
func isRegexValid2(string:String,pattern:String) -> Bool {
let regex = try! NSRegularExpression(pattern: pattern, options: [])
return regex.firstMatch(in: string, options: [], range: NSMakeRange(0, string.utf16.count)) != nil
}
我想了解两个正则表达式调用之间的区别以及我们是否应该避免其中一个。