• 正则表达式(JAVA)


    正则表达式(JAVA)

    用法

    • 正则表达式在用于校验信息是否满足某些规则的时候,非常的好用

    • 文本中查找满足要求的内容

    字符类(只匹配一个字符)

    符号作用补充
    [abc]只能是a,b或c匹配的一个字符只能是[]范围内的其中一个
    [^abc]除了a,b,c之外的任何字符^符号类似
    [a-zA-Z]a到z A到Z ,包括范围-作用是由…到… ,两个或多个范围之间不需要任何符号
    [a-d[m-p]]a到d,或m到p两个[]之间嵌套表示字符为其中之一
    [a-z&&[def]]a-z和def的交集&&为交集符号,匹配的字符是交集范围内容
    [a-z&&[^bc]]a-z和非bc的交集和上一个基本一致
    [a-z&&[ ^m-p]]a-z和除了m到p的交集存在运算优先级
    • 单个字符匹配JAVA方法: 单个字符.matches(正则表达式) 返回值是布尔类型

    预定义字符(只匹配一个字符)

    符号作用补充
    .匹配 任何字符
    \d匹配 一个数字
    \D匹配 非数字
    \s匹配 空白字符 ([\t\n\x0B\f\r])
    \w匹配 [a-zA-Z_0-9] 英文,数字,下划线
    \W匹配 [ ^\w] 一个非 英文,数字,下划线 字符
    • java中的\表示转义字符

    • java匹配预定义字符需要进行转移

    • PS: "a".matches("\\d")

    数量词

    • 说明: X代表任意字符
    • 可以配合上面的内容实现多符号匹配
    符号作用补充
    X?X 出现 一次或0次
    X*X 出现 零次或多次
    X+X 出现 一次或多次
    X{n}X 出现 正好n次{}代表出现的次数
    X{n, }X 出现 至少n次
    X{n,m}X 出现 至少n次但不超过m次
    • PS: "23dF.matches("[\\w&&[^_]]{4}")"
    • 解析: 字符在\\w去除_的条件下,出现4次,所以结果是true

    贪婪爬取

    • 贪婪爬取: 在爬取数据的时候尽可能多得获取数据
      • 符号: +,*
      • PS: ab+
    • 非贪婪爬取: 在爬取数据时尽可能少的获取数据
      • 符号: +?,*?
      • PS:ab*?

    符号

    符号作用
    ``
    &&相交
    \转义字符
    ()分组
    []范围
    {}次数

    捕获分组

    规则

    • 规则1: 从1开始
    • 规则2: 以左括号为基准,最左边的是第一组,其次是第二组,依次类推
    • PS: (\\d+(\\d+)\\d+)

    捕获分组

    • 在某些情况下我们并不知道一个统一的标准,只知道一些要求时,需要使用捕获分组,也就是通过捕获某一组的数据,然后再使用
    • PS : 判断一个字符串的开始字符和结束字符是否一致
    • 举例: a123a ----> Java正则表达式==>(.).+\\1
    • 解释: 后面的\\1的意思是拿到第一组的数据复用,这里的1代指第一组
    • 理解: (.+)每一个.+直到获取的数据和原来不是同一类型会自动结束

    符号

    • \\ : 内部
    • $: 外部

    非捕获分组

    符号作用
    (?:正则)获取所有
    (?=正则)获取前面部分
    (?!正则)获取不是指定内容的前面部分
    • 含义: 分组之后不需要再用本组数据,仅仅是把数据括起来,括起来的表达式不在占用组号
    • 更多会使用第一个

    案例

    忽略大小写

    • PS: "(?i)字符"表示对后面的字符忽略大小写
    • System.*out*.println("aB".matches("(?i)ab"));---->true
    • (?i)后面的字符才忽略大小写
  • 相关阅读:
    BinLog和RedoLog区别
    详细说说什么是单元测试的边界
    Canonical 发布公告,Ubuntu可以在 Windows 10 商店找到
    Vue插槽slot
    Linux利用源码包升级Nginx到1.23.1用以解决nginx安全漏洞问题
    机器学习笔记:Huber Loss & smooth L1 loss
    WOFOST模型与PCSE模型实践技术应用
    【构建并发程序】1-线程池-Executor-ExecutionContext
    数据可视化:让数据讲述故事
    linux命令汇总
  • 原文地址:https://blog.csdn.net/JUIU9527/article/details/132643154