zoukankan      html  css  js  c++  java
  • 正则


    正则表达式 字符串的规则
    来帮助我们
    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次)

  • 相关阅读:
    cento7快速修改主机名和修改root密码
    [goolegke]nginxingress建立测试
    filebeat安装读取nginx json日志
    MySQL索引背后的数据结构及算法原理
    Lua脚本在redis分布式锁场景的运用
    Sentinel实现限流
    java架构技术流程图
    mybatis数据加解密处理方案
    vue 自定义代码片段
    node项目vue 自动化部署之pm2
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10572584.html
Copyright © 2011-2022 走看看