• 正则



    正则表达式 字符串的规则
    来帮助我们
    1.检测某一段字符串时候符合规则
    2.从一段文字中将符合规则的匹配出来
    正则只和字符串相关

    规则
    元字符
    量词

    简单字符串的筛选和匹配
    在字符串当中,-是有特殊意义的,如果我们想取消这个横杠的特殊意义
    需要使用 作为转义符

    字符组之外的其它带有特殊给则的元字符:
    [0-9] d 匹配任意一个数字
    [A-Z0-9a-z] w 标识符
    匹配回车换行
    匹配制表符 table
    空格 本身匹配 空格
    s 匹配所有的空白
     匹配一个单词的边界
    反义词
    W 除了数字字母下划线之外的所有
    D 除了数字之外的所有
    S除了空白之外的所有

    . 匹配换行符之外的所有字符

    匹配所有: [Dd] [Ww] [Ss]
    非字符组:[^123]除了123之外的都匹配

    开始符合结束符
    ^永远在一个规则的最开始
    $永远在一个规则的最末尾
    ^和$ 规定了这个字符串的长度,并且在这个长度内的
    内容和规定必须一模一样

    | 或的概念
    123|456

    www.baidu.com
    www.oldboy.com

    分组的概念
    www.(baidu|oldboy).com

    总结:
    d w s ( ) 
    D W S
    [] [^]
    ^ $
    | 或 永远把相对长的放在左边
    ()
    .
    匹配所有: [Dd] [Ww] [Ss]

    元字符取值多少排序:

    < < d < w < . < s

    量词:
    {n} 表示出现n次
    {n,} 表示至少出现n次
    {n,m} 表示出现n-m次
    ? 表示匹配0次或1次
    + 表示匹配1次或多次
    * 表示匹配0次或多次

    贪婪匹配 : 尽可能多(上限)的去匹配

    元字符 量词
    匹配的是一个字符的内容
    量词 表示的是匹配的次数
    例如: 15位和18位身份证;18位的以X和数字结尾,都不能以0开头
    其实18位的可以写成 [1-9]d{16}[dx]或者[1-9]d{14}d{2}[dx]
    15位的可以写成[1-9]d{14}
    [1-9]d{14}(d{2}[dx])?

    转义
    在测试的网页山写的是什么 就直接赋值过来
    然后在字符串外面加上 r
    r'\n'-->r' '
    本身具有转义的作用,相当于改变了t本来的面目
    \ 本身具有转义的作用,\相当于转义了的特殊作用,使它变成了普通的一个
    贪婪匹配 : 默认的 尽可能多的匹配(它只把符合要求的取到上限数,但是不符合要求的一个都不取)
    惰性匹配 : 需要我们手动设置,尽可能少的匹配(把符合要求的取到最下限,但是把不符合要求的取到最上限)

    贪婪匹配数量 < 惰性匹配的数量

    拓展:

    w 既然是 匹配 数字字母下划线的,那么 w?为什么还能匹配   ?><>"":{} 这些特殊字符呢?

    这里的w?就是利用惰性匹配的不符合要求达到上限值 -->  ?><>"":{}  这里的9个特殊符号都是不符合要求的,就有10个结果,这10个结果都是没匹配上(即匹配0次)

  • 相关阅读:
    安装libgl1-mesa-dri:i386重启后黑屏问题解决
    adb连接安卓模拟器
    编译andorid内核
    android镜像文件说明
    ubantu14.04配置android编译环境
    UDP组播相关
    eclipse中如何向开源中国(码云)上传代码
    How to copy a java.util.List into another java.util.List
    Windows中.exe程序的启动过程和C/C++运行时库
    GEF调色板中的多级树结构
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10572584.html
Copyright © 2020-2023  润新知