• 正则表达式笔记


    1.不匹配字符,只匹配一个位置:它的前一个字符或者后一个字符不全是(一个是,一个不是或不存在)w。
    2.s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。
    3.w匹配字母或数字或下划线或汉字等。
    4..匹配换行符( )以外的任意字符。
    5.d匹配数字。
    6.^匹配字符串的开始。
    7.$匹配字符串的结束。
    8.d{5,10},匹配不少于5,不多于10个数字字符串。
    9.|意为或,从左到右匹配分支条件。
    10.[]用来自定义范围,-范围符号,
        [123],为1,2,3中的一个,
        [1-3],1到3,
        [a-zA-Z0-9],大小写英文+数字,等同w(如果只考虑英文的话)
    11.()标记一个子表达式,默认自动命名(从1开始),在后续表达式中可以引用该子表达式所捕获到的文本:
        (w+)s+1 可以匹配 go go, kitty kitty等, (w+)表达式被自动命名为1被后文引用:1
        自定义命名,用(?<name>exp)或(?'name'exp),引用方式用k<name>或k'name':
        (?<love>w+)s+k<love>
        (?'love'w+)s+k'love'
        不捕获文本,也不自动命名分组:
        (?:exp)
        用专业术语来说,这个叫做分组以及后向引用,哈哈哈。。
    12.(?=exp)    w+(?=ing)匹配以ing结尾的单词的前面部分(除了ing以外的部分)
        (?<=exp)    (?<=start)w+匹配以start开头的单词的后半部分(除了start以外的部分)
    13.q(?!d)匹配q后面不跟着一个数字,并且不消费字符,后续的匹配从q后第二个字符开始
        而^d则会消费字符,后续的匹配从q后第一个字符开始
    14.单行模式匹配只是更改.的含义,使它与每一个字符匹配(包括换行符 )
        多行模式则是更改^和$的含义,使它们分别在任意一行的行首和行尾匹配(不再是整个字符串的开头和结尾)
        名字让人疑惑,但其实两种模式可以同时开启。

  • 相关阅读:
    设计模式之动态代理
    设计模式之单例模式
    WinDbg调试高内存的.Net进程Dump
    ping 和 远程桌面 与防火墙的关系
    log4net性能小探
    html页面缓存问题
    casperjs在拆分文件后的中文乱码问题的解决
    casperjs userAgent的一些问题
    浅谈并查集
    当你感到学习困难的时候,你在走上坡路!
  • 原文地址:https://www.cnblogs.com/thyong/p/5274751.html
Copyright © 2020-2023  润新知