一.NSRegularExpression
- 1.仅仅保留中文
let str = "aiva你好94177吗??"
let pattern = "[^\\u4E00-\\u9FA5]"
let regex = try? NSRegularExpression(pattern: pattern, options: [])
let result = regex?.stringByReplacingMatches(in: str, options: [],
range: NSMakeRange(0, str.count),
withTemplate: "")
print(result ?? "")
- 2.常用的一些正则表达式:
非中文:[^\\u4E00-\\u9FA5]
非英文:[^A-Za-z]
非数字:[^0-9]
非中文或英文:[^A-Za-z\\u4E00-\\u9FA5]
非英文或数字:[^A-Za-z0-9]
非因为或数字或下划线:[^A-Za-z0-9_]
二. NSPredicate
let phoneNum = "14728765642"
let regex = "1[3456789][0-9]{9}"
let predicate = NSPredicate(format: "SELF MATCHES %@", regex)
let isValid = predicate.evaluate(with: phoneNum)
print("\(isValid ? "" : "不")是手机号码")
常用的正则表达式
url
"\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|/)))"