`

正则表达式

    博客分类:
  • java
阅读更多

一,简介

       正则表达式定义了字符串的一种结构。只要满足这种规则的字符串都可以与之进行匹配。

二,正则表达式

       * : 表示前面字符可以有零次或多次。举例:ab* 能匹配aababbabbb……

      + : 表示前面字符可以有一次或多次。举例:ab+ 能匹配ababbabbb……。等价于"abb*"

       ? : 表示前面字符可以有零次或一次。举例:or? 能匹配oor

      ^ : 用于限制开头。

      $ : 用于限制结尾。举例:"^\\d{15}|\\d{18}|\\d{17}X$"

      .  : 表示除\n以外任意一个单独字符。

      [a-z]:表示小写的 z范围中任意一个字符。

      [A-Z] : 表示大写的 Z范围中任意一个字符。     

      [a-zA-Z] : 表示azAZ中任意一个字符。

      {} : 限制字符出现次数。举例 :{1,}表示匹配一次或多次,等价于+;{6} :表示匹配6次;{3,6}表示匹配36次。

      () : 用于框定一个整体。举例:(ab){3,6}表示匹配”ab” 36次。

       | : 两者选一。举例:"^\\d{15}|\\d{18}$",表示15位或18位数字。

      [^abc] : 表示除abc之外的任意一个字符(^否定)

      [abc] : 表示字符abc中的任意一个。

      \D : 表示一个非数字字符,也就是[^0-9]

      \d : 表示数字[0-9]。

      \W :表示一个非单词的字符,即[^\\w]

     \w : 表示一个单词字符(字母,数字,下划线),[a-zA-Z_0-9]

      \B : 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'

      \b :  匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'

      \ : 转义字符(反斜杠)。

      / : 普通字符(正斜杠)。

三,应用举例

     

   /**匹配整数**/
   Pattern pattern  =  Pattern.compile("^-?\\d+$"); //^全局结构匹配$
   Matcher matcher  = pattern.matcher("-123");//匹配整数
   System.out.println(matcher.matches());//true
   
   /**匹配身份证**/
   Pattern pattern  =  Pattern.compile("^\\d{15}|\\d{18}|\\d{17}X$"); //^全局结构匹配$
   Matcher matcher  = pattern.matcher("42800519800107245X");//匹配身份证
   System.out.println(matcher.matches());//true

   /**匹配手机号**/
    Pattern pattern  =  Pattern.compile("^(13[0-9]|14[5|7]|15[0-9]|17[0-9]|18[0-9])\\d{8}$"); //^全局结构匹配$
    Matcher matcher  = pattern.matcher("13247160020");//匹配手机号
    System.out.println(matcher.matches());//true
   

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics