正则表达式

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))

  

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

  

正则表达式:

  

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