zoukankan      html  css  js  c++  java
  • 正则小公举

    语法

    • [abc]单个字符:a或b或c
    • [^abc]a,b,c以外的单个字符
    • [a-zA-Z0-9]字符范围
    • .任意字符
    • s空字符
    • S非空字符
    • d数字字符
    • D非数字字符
    • w单词(字母,数字,下划线)
    • W非单词
    • 单词边界
    • 非单词边界
    • ^开头
    • $结尾
    • (...)分组
    • (a|b)a或b
    • a*重复0次或多次
    • a?重复0次或1次
    • a+重复1次或多次
    • a{3}重复3次
    • a{3,}重复3次或多次
    • a{3,5}重复3到5次
    • ?非贪婪匹配
    • (?:abc)非捕获分组
    • (?=abc)正向匹配abc
    • (?!abc)正向不匹配abc
    • xhh十六进制hh字符
    • uhhhh十六进制hhhh字符
    • u{hhhh}(仅当设置了u标志时)十六进制hhhh字符
    • cX控制字符
    • 空字符
    • aalert字符
    • 制表符
    • 换行符
    • v垂直制表符
    • f换页符
    • 回车符
    • eescape字符
    • []退格符
    (?=y)

    匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。

    例如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’仅仅当它后面跟着'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。

    (?<=y)x

    匹配'x'仅仅当'x'前面是'y'.这种叫做后行断言。

    例如,/(?<=Jack)Sprat/会匹配到' Sprat '仅仅当它前面是' Jack '。/(?<=Jack|Tom)Sprat/匹配‘ Sprat ’仅仅当它前面是'Jack'或者是‘Tom’。但是‘Jack’和‘Tom’都不是匹配结果的一部分。

    x(?!y)

    仅仅当'x'后面不跟着'y'时匹配'x',这被称为正向否定查找。

    例如,仅仅当这个数字后面没有跟小数点的时候,/d+(?!.)/ 匹配一个数字。正则表达式/d+(?!.)/.exec("3.141")匹配‘141’而不是‘3.141’

    (?<!y)x

    仅仅当'x'前面不是'y'时匹配'x',这被称为反向否定查找。

    例如, 仅仅当这个数字前面没有负号的时候,/(?<!-)d+/ 匹配一个数字。
    /(?<!-)d+/.exec('3') 匹配到 "3".
    /(?<!-)d+/.exec('-3') 因为这个数字前有负号,所以没有匹配到。

  • 相关阅读:
    跟踪spring MVC的请求
    spring的Java注解方式
    spring IOC理解
    spring aop
    spring mvc开发过程中的乱码问题
    springmvc的Controller里实现转发的同时弹出提示对话框
    C++程序加速的12个方法
    VSCode官方配置C/C++
    VSCode配置C/C++环境
    Numba 0.44 中文文档
  • 原文地址:https://www.cnblogs.com/dfyg-xiaoxiao/p/12022920.html
Copyright © 2011-2022 走看看