• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift项目第九天:正则表达式的学习

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
import UIKit

/*
练习1:匹配abc

练习2:包含一个a~z,后面必须是0~9 -->[a-z][0-9]或者[a-z]\d
    * [a-z] : a~z
    * [0-9]/\d : 0~9:[0-9]/\d :表示[0-9]或\d,\d表示数字的意思

练习3:必须第一个是字母,第二个是数字 -->^[a-z][0-9]$
    * ^[a-z] : 表示首字母必须是a~z
    * \d{2,10} : 数字有2到10
    * [a-z]$ : 表示必须以a-z的字母结尾

练习4:必须第一个是字母,字母后面跟上4~9个数字

练习5:不能是数字0-9

    * [^0-9] : 不能是0~9



练习6:QQ匹配:^[1-9]\d{4,11}$
都是数字
5~12位
并且第一位不能是0


练习7:手机号码匹配^1[3578]\d{9}$
1.以13/15/17/18
2.长度是11
*/

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let str = "13324132423"
        
        // 1.创建正则表达式规则
        let pattern = "^1[3578]\\d{9}$"// \\d{9},其中\\表示转义, \\d{9}表示,后面有9位数字
        
        // 2.创建正则表达式对象(抛出异常throw用:try try? try!)
        guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
            return
        }
        
        // 3.匹配字符串中内容:swift中的字符串的长度用:str.characters.count
        let results = regex.matches(in: str, options: [], range: NSRange(location: 0, length: str.characters.count))
        
        // 4.遍历数组,获取结果:字符串的截取操作一般都是将swift的字符串转为oc的字符串来处理
        for result in results {
            print((str as NSString).substring(with: result.range))
            print(result.range)
        }
    }

}
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let statusText = "@coderwhy:【动物尖叫合辑】#肥猪流#猫头鹰这么尖叫[偷笑]、@M了个J: 老鼠这么尖叫、兔子这么尖叫[吃惊]、@花满楼: 莫名奇#小笼包#妙的笑到最后[好爱哦]!~ http://t.cn/zYBuKZ8/"
        
        /*
         
         1: 匹配出来@coderwhy:let pattern = "@.*?:" ,其中 .* 用来表示表示任意字符,加上 ?来表示,只要遇到:就立即停止匹配,没有?的话,它会一直匹配到最后一个:
         
         2: 匹配表情: let pattern = "\\[.*?\\]" ,因为[],有特殊的含义,所以要进行转义,转义就用\转义,\在siwft字符串中也有特殊含义,所以就再用\来表示,转义就用\,如果转义后,还有特殊含义,就再用\来表示
    
         **/
        
        
        
        // 1.创建匹配规则
        // let pattern = "@.*?:" // 匹配出来@coderwhy:
        // let pattern = "#.*?#" // 匹配话题
        // let pattern = "\\[.*?\\]" // 匹配表情
        let pattern = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?" // URL网址
        
        // 2.创建正则表达式对象
        guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
            return
        }
        
        // 3.开始匹配
        let results = regex.matchesInString(statusText, options: [], range: NSRange(location: 0, length: statusText.characters.count))
        
        // 4.获取结果
        for result in results {
            print((statusText as NSString).substringWithRange(result.range))
        }
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Swift]LeetCode1133.最大唯一数|LargestUniqueNumber发布时间:2022-07-13
下一篇:
[Swift]LeetCode706.设计哈希映射|DesignHashMap发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap