美文网首页
Swift 正则匹配

Swift 正则匹配

作者: 越天高 | 来源:发表于2020-04-29 14:44 被阅读0次
//练习1 ,拼配abc
        // 创建字符串
        let str1 = "asdfasgeabcdeeabc"
        //1.创建拼配规则
        let pattern = "abc"
        //2. 创建这正则表达式对象
        let regex = try? NSRegularExpression(pattern: pattern, options: []);
        
        //3. 匹配字符串中的内容
        guard let results = regex?.matches(in: str1, options: [], range: NSRange(location: 0, length: str1.count)) else
        {
            return
        }
        
        //4. 遍历结果
        for result in results
        {
            print((str1 as NSString).substring(with: result.range) )
            print(result)
        }

        
//练习2:包含一个a~z,后面必须是0~9 -->[a-z][0-9]或者[a-z]\d
        let str2 = "034a5v6e436"
        
        //1创建拼配规则
        let pattern2 = "[a-z][0-9]"
        //2. 创建正则拼配对象
        let regex2 = try? NSRegularExpression(pattern: pattern2, options: [])
        
        //3.匹配字符串
        guard let results2 = regex2?.matches(in: str2, options: [], range: NSRange(location: 0, length: str2.count)) else
        {
            return
        }
        
        //4. 遍历匹配结果
        for result2 in results2 {
            print((str2 as NSString).substring(with: result2.range))
        }
        
     //练习3. 练习3:必须第一个是字母,第二个是数字 -->^[a-z][0-9]$
     // ^[a-z] : 表示首字母必须是a~z
     //* \d{2,10} : 数字有2到10
     //* [a-z]$ : 表示必须以a-z的字母结尾
       
        
        let str3 = "a3fjasterndalgi"
        
        //1. 创建拼配规则
        let pattern3 = "^[a-z][0-9]"
        
        //2. 创建正则拼配对象
        let regex3 = try? NSRegularExpression(pattern: pattern3, options: [])
        
        //3. 匹配字符串
        guard let results3 = regex3?.matches(in: str3, options: [], range:
            NSRange(location: 0, length: str3.count)) else
        {
            print("没有匹配结果")
            return;
        }
        
        //遍历匹配结果
        for result3 in results3
        {
            print((str3 as NSString).substring(with: result3.range))
        }
        
       //练习4: 必须第一个是字母,字母后面跟上4~9个数字
        
        let str4 = "a23456fads46534fa"
        
        //1. 创建匹配规则
        let pattern4 = "^[a-z][0-9]{4,9}"
        
        //2. c创建正则匹配对象
        let regex4 = try? NSRegularExpression(pattern: pattern4, options: [])
        
        //3. 匹配字符串
        guard let results4 = regex4?.matches(in: str4, options: [], range: NSRange(location: 0, length: str4.count)) else
        {
        
            return
        }
        
        for result4 in results4
        {
            print((str4 as NSString).substring(with: result4.range) )
        }
        
       
        //练习5:不能是数字0-9
        let str5 = "dsf3iah3g4i3"
        
        //5.1 创建匹配规则
        let pattern5 = "[^0-9]"
        
        //5.2 创建正则匹配对象
        let regex5 = try? NSRegularExpression(pattern: pattern5, options: [])
        
        //5.3 匹配字符串
        guard let results5 = regex5?.matches(in: str5, options: [], range: NSRange(location: 0, length: str5.count)) else {
            return
        }
        
        //5.4 遍历结果
        for result5 in results5
        {
            print((str5 as NSString).substring(with: result5.range))
        }
        
        //练习6: qq匹配
        
        /*
         都是数字
         5~12位
         并且第一位不能是0
         */
        let str6 = "759542164"
        
        //1. 创建匹配规则
        let pattern6 = "^[1-9][0-9]{4,12}$"
        
        //2. 创建正则匹配对象
        let regex6 = try? NSRegularExpression(pattern: pattern6, options: [])
        
        //3. 匹配字符串
        guard let results6 = regex6?.matches(in: str6, options: [], range: NSRange(location: 0, length: str6.count)) else
        {
            print("不是QQ号");
            return
        }
        if results6.count > 0 {
            print("是qq号")
        }
        
        /*练习7:手机号码匹配^1[3578]\d{9}$
        1.以13/15/17/18
        2.长度是11
        */
        
        let str7 = "181a20612556a"
        //1.创建匹配规则
        let pattern7 = "^1[3578][0-9]{9}$"
        
        //2.创建正则匹配对象
        let regex7 = try? NSRegularExpression(pattern: pattern7, options: [])
        
        //3. 匹配字符串
        guard let results7 = regex7?.matches(in: str7, options: [], range: NSRange(location: 0, length: str7.count)) else
        {
           
            return
        }
        if results7.count > 0 {
            print("是手机号")
        }else
        {
             print("不是手机号")
        }

相关文章

网友评论

      本文标题:Swift 正则匹配

      本文链接:https://www.haomeiwen.com/subject/ntogwhtx.html