正则表达式

本文详细介绍了正则表达式的基础知识,包括字符类的使用,如[a-z]、[^abc]等,以及如何进行字符串的正则匹配。还探讨了逻辑运算符如&&和|在正则中的应用,并讲解了预定义字符如.d、D等的含义。此外,文章还涵盖了量词的概念,如?、*、+等,以及在实际应用中的示例,如验证数字和QQ号码格式。最后,提到了分组括号在正则表达式中的作用,展示了如何使用分组进行复杂匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式认识

  • 正则表达式通常用来校验,检查字符串是否符合规则的

正则表达式语法-字符类

  • 字符类
    • 方括号被用于指定字符
  • 语法示例
    • [abc] :代表a或者b,或者c字符中的一个
    • [^abc]:代表除a,b,c以外的任何字符
    • [a-z] :代表a-z的所有小写字符中的一个
    • [A-Z] :代表A-Z的所有大写字符中的一个
    • [0-9] :代表0-9之间的某一个数字字符
    • [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符
    • [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符
  • 字符串正则匹配方法
    • boolean  matches(正则表达式) :如果匹配正则表达式就返回true,否则返回false

  • 验证str是否以h开头,以d结尾,中间是a,e,i,o,u中某个字符

    • "h[aeiou]d"

  • 验证str是否以h开头,以d结尾,中间不是a,e,i,o,u中的某个字符

    • "h[^aeiou]d"

  • 验证str是否a-z的任何一个小写字符开头,后跟ad

    • "[a-z]ad"

  • 验证str是否以a-d或者m-p之间某个字符开头,后跟ad

    • "[a-dm-p]ad"

正则表达式语法-逻辑运算符

  • 逻辑运算符
    • && : 并且
    • | : 或 (一般都省略掉了)

  • 要求字符串是除aeiou外的其它小写字符开头,后跟ad

    • "[a-z&&[^aeiou]]ad"

  • 要求字符串是aeiou中的某个字符开头,后跟ad

    • "[a|e|i|o|u]ad"

正则表达式-预定义字符

  • 预定义字符 : 简化字符类的书写
    • "."  : 匹配任何字符
    • "\d":任何数字[0-9]的简写
    • "\D":任何非数字[^0-9]的简写
    • "\s" : 空白字符:[ \t\n\x0B\f\r] 的简写
    • "\S" : 非空白字符:[^\s] 的简写
    • "\w" :单词字符:[a-zA-Z_0-9]的简写
    • "\W":非单词字符:[^\w]
正则表达式: 量词

        X? :         0次或1次
        X* :          0次到多次
        X+ :         1次或多次
        X{n} :       恰好n次
        X{n,} :      至少n次
        X{n,m}:    n到m次(n和m都是包含的)
        验证str是否3位数字
                "\d{3}"
        验证str是否是多位数字
                "\d+"
        验证qq号码:1).5--15位;2).全部是数字; 3).第一位不是0
                "[1-9]\d{4,14}"
正则表达式-分组括号

        将要重复使用的正则用小括号括起来,当做一个小组看待
        分为5组,每组之间使用 - 隔开,每组由5位A-Z或者0-9的字符组成
                "([A-Z0-9]{5}-){4}[A-Z0-9]{5}"

字符串中常用含有正则表达式的方法

public String[] split ( String regex )可以将当前字符串中匹配regex正则表达式的符号作为"分隔符"来切割字符
public String replaceAll ( String regex , String newStr )

可以将当前字符串中匹配regex正则表达式的字符串替换为newStr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值