zoukankan      html  css  js  c++  java
  • 正则表达式

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

      

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

      

    正则表达式:

      

  • 相关阅读:
    Python-PyQt5-图形可视化界面(5)--打开文件或文件夹--QFileDialog
    python opencv图片拼接源码
    python numpy库矩阵运算的功能
    stm32定时器/定时器中断/PWM输出/输入捕获
    STM32 串口/中断
    STM32F4 IO
    STM32F4 时钟树概述
    MDK5新建工程/MDK5 使用技巧/STM32F4 在线调试
    使用 LocalDate 过滤掉工作日
    斐波拉契数列(Lambda表达式)
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/4909042.html
Copyright © 2011-2022 走看看