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

      

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

      

    正则表达式:

      

  • 相关阅读:
    随笔javascript/html5裁剪初试
    javascript开发随笔1,preventDefault的必要
    uploadify/swfupload HTTP_ERROR 406、302
    Python中__init__方法注意点
    ehcache.xsd No grammar constraints (DTD or XML Schema).
    Eclipse Organize Import 批量导包
    eclipse thymeleaf 插件安装
    windows 下 查看某个端口是否已经使用
    找符号网
    杀毒软件
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/4909042.html
Copyright © 2011-2022 走看看