java正则表达式

一、基本正则表达式    


    1.正则表达式简介


    ·就是记录文本规则的代码
    --预定义字符

  • [] 表示一个字符,括号中的字符,[abc],a,b,c中任意一个字符
  •  ^ 表示非, 如[^abc] 除了a,b,c的任意字符,注:在[]中表示非,
  •   - 表示范围,如[a-zA-Z0-9], 表示a~z、A~Z、0~9中的任意一个字符
  • && 表示并且,与。如[a-z&&[^bc]],除了b,c意外的任意一个字符
  • 表示任意一个字符,什么都行,各国文字、符号等
  •  \d 表示任意一个数字字符,相当于[0-9] 
  •  \w 表示单词字符,相当于[a-zA-Z0-9]
  •  \s 表示空白字符,相当于[\t\n\x0B\f\r]
  • \D 表示非数字字符
  •  \W 表示非单词字符
  •  \S 表示非空白字符

    ---数量词

  •  ?  表示 0个或1个。 X?,0或1个X
  •  *  表示0个或任意多个
  •   +  表示1个到任意多个(大于等于1)
  •  {n} 表示n个。 X{n},表示n个X
  •  {n,}表示n个到任意多个(大于等于n个)
  •  {n,m} 表示n个到m个,必须 n<m
  •  \  表示转义。如要出现. 需要用 \.    · 


    2.分组 "()"

  •  () 表示括号中的部分作为整体出现, 


    
    3."^"和"$"

  • ^ 在正则表达式开头表示已后面的为开头
  •  $ 在表达式末尾,表示已前面的内容结尾

        -- ^[0-9]{11}$ , 匹配位数字
    


    4.总结

  • 正则表达式只关心格式是否正确,不关心内容是否有效
  • java中用字符串表示正则表达式

 

二、String正则API 

 
    1.matches方法

  -如
        String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9]+)+"; //此处\.处会报错,说.不需要转义
        String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9]+)+"  //正确
    使用:
        //验证是否满足格式要求,此处匹配一个邮箱
        String mail = 879@qq.com
        boolean math = mail.mathches(reg);
        mathches是全匹配,默认开头加了^,不是部分匹配
        要想部分匹配,开头用 .*
        
        //匹配身份证号
        \d{15}(\d{2}[0-9xX])?
        String reg = "\\d{15}(\\d{2}[0-9xX])?";    

 

    2.split方法

  • 将字符串按照特定的分隔符拆分成字符串数组

    String[] split(String regex)  | 参数regex为正则表达式, 以regex所表示的字符串为分隔符(不包括分隔符),将字符串拆分成字符串数组

  •  ",,123",split(",") 则会拆出空字符串
  • "123,,,," split(",") 则不会拆出空字符串, 这时坑的地方
  •  在结尾就不会出拆出空字符串,注意:不是null! 在中间或开头都会拆除空字符串

 

    3.replaceAll方法

String replaceAll(String regex, String replacement)  | 将字符串中匹配正则表达式regex的字符串替换成replacement

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值