import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let str = "18552039760"
///1. 创建正则表达式规则
// let pattern = "jio"
// let pattern = "[3]" //匹配含有3的。
// let pattern = "[32]" //匹配含有3或2的任何一个
// let pattern = "[a-z]" //匹配含有a到z的任何一个
///2. 匹配字符后必须有一位数字:[0-9] 或 \d
// let pattern = "[a-z][0-9]" //后面跟上一位 数字
// let pattern = "[a-z]\\d" //后面跟上一位 数字 \d 需要转义 \\d
// let pattern = "[a-z]\\d\\d" //后面跟上2位 数字 \d 需要转义 \\d
// let pattern = "[a-z]\\d{2}" //后面跟上2位 数字 \d 需要转义 \\d
// let pattern = "[a-z]\\d{2}" //后面跟上2位 数字 \d 需要转义 \\d
//3.此处10的前面前往不要写空格,空格也有特殊含义
// let pattern = "[a-z]\\d{2,10}" //后面跟上2到10位 数字,此处10的前面前往不要写空格
///4. ^: 首字符必须是a-z
// let pattern = "^[a-z]"
// let pattern = "^[a-z]\\d" //首字母a-z,后面是数字
// let pattern = "^[a-z]\\d{2,10}" //首字母a-z,后面是2-10位的数字,不是2-10之间的数字
//5. $:以什么结尾
// let pattern = "[a-z]$" //尾字母a-z
//6. 非:不能是数字0-9 -> [^0-9]
// let pattern = "^[^0-9]" //首字母不是0-9
//7. QQ号匹配:5到12位
// let pattern = "^[1-9]\\d{4,11}$" //首字母不是0,并且5-12位结尾
//8. 电话号码匹配:11位
let pattern = "^1[3578]\\d{9}$" //首字母是1,并且后面是3,5,7,8然后跟着9位数字
/// 创建正则表达式对象 (异常返回 try try? try!)
guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else{
return
}
///匹配字符串中的内容
let results = regex.matches(in: str, options: [], range: NSRange(location: 0, length: str.count))
for result in results {
print((str as NSString).substring(with: result.range))
print(result.range)
}
}
}