码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2015-10-25 17:58:55      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

1.正则表达式的作用:从复杂的字符串中摘取需要的内容

2.表达形式    .*?

            . 匹配任意字符,换行除外

            * 匹配任意多个字符

            ? 尽量少的匹配

 3.书写步骤:      

            1. 找特征字符

            2. 定义匹配方案

            3. 设置匹配选项 DotMatchesLineSeparators,让 `.` 能够匹配换行符号,通常用在网络爬虫

            4. firstMatchInString 找第一个符合要求的匹配项

            5.查找结果:

            var numberOfRanges: Int { get } 找到的范围数量

             func rangeAtIndex(idx: Int) -> NSRange  按照 index 获取 range

5. pattern () 表示要匹配的内容

            提示:其他常用的正则,可以直接百度,非常丰富!

6.实例:

    技术分享

        let string = "hahah<a href=\"http://weibo.com/\" rel=\"nofollow\">微博 weibo.com</a>xixi"

        let pattern = "<a href=\"(.*?)\".*?>(.*?)</a>"

        let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions.DotMatchesLineSeparators)

        let result = regex.firstMatchInString(string, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, string.characters.count))

        print(result?.numberOfRanges)

 

        let r1 = result!.rangeAtIndex(1)

        let r2 = result!.rangeAtIndex(2)

        print((string as NSString).substringWithRange(r1))

        print((string as NSString).substringWithRange(r2))

  

把此方法做一个扩展,以备复用

  技术分享

正则表达式

标签:

原文地址:http://www.cnblogs.com/jiayongqiang/p/4909042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!