我想测试用户输入以查看整个输入是否与以下正则表达式匹配。我如何使用Swift做到这一点?
[a-zA-Z]+@[a-zA-Z]+.[a-zA-Z]
答案 0 :(得分:4)
看起来您正在尝试验证电子邮件地址。试试这个:
public void putFragment(int i,byte[] f) {
fragments.put(i, f);
}
let test = "someone@somewhere.com"
do {
let regex = try NSRegularExpression(pattern: "[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z]", options: [])
if regex.firstMatchInString(test, options: [], range: NSMakeRange(0, test.utf16.count)) != nil {
print("matched")
} else {
print("not matched")
}
} catch let error as NSError {
print(error.localizedDescription)
}
仍然背后有很多ObjC遗产,因此使用它非常冗长。
答案 1 :(得分:1)
这里有一种在 Swift 中没有 NSRegularExpression
的方法。您仍然需要import Foundation
。
let email = "foo@bar.com"
if let _ = email.range(of: #"[a-zA-Z]+@[a-zA-Z]+.[a-zA-Z]"#,
options: .regularExpression) {
print("We have a match!")
}