您的位置:首页 > 编程语言 > Java开发

Java正则表达式

2016-04-11 15:15 302 查看
       一直都没有认真的学习Java正则表达式,现在好好的学习学习一下,把各个字符表示的意思总结一下。

       所谓的正则表达式就是处理字符串的特殊字符串,用来字符串的匹配,字符串的查找,字符串的替换。

       普通字符:字母,数字,汉字,下划线。

      \r, \n, \t, \f  表示回车符,换行符,制表符,换页符

      .         表示任意的一个字符

      X?     表示可以出现0次或者一次

      X+    表示可以出现1次或者多次

      X*    表示可以出现任意次

      X{n}表示可以出现n次

      X{m,n}表示可以最少出现次,最多出现n次

      X{n,}   表示最少出现n次

      [   ] 匹配括号中任意一个字符

      [^ ] 匹配括号中字符以外的任意一个字符

      \d  表示0-9之间的任意一个数字字符,即[0-9]

      \D 表示0-9之外的任意数字字符,即[^0-9]

        \s 表示空格,字符表,换页符等空白字符任意一个

      \S 表示除空白以外的任意一个字符,[^\s]

      \w表示字母,数字,下划线中任意一个字符,即[a-zA-Z_0-9]

      \W 表示字母,数字,下划线以外的任意一个字符,即[^a-zA-Z_0-9]

      ^ 表示不匹配任何字符,字符串开始的位置,即^h必须h开头

      $表示不匹配任何字符,字符串结束的位置,即r$必须以r结尾

      \b该符号不匹配任何字符,表示单词的边界

      \B该符号不匹配任何 字符,表示非单词的边界,即[^\b]

      | 用来连接两个子表达式,表示或的关系,X|Y 表示X或者Y中任意字符

      ()作为一个单元一个分组

       Pattern pattern1 = Pattern.compile("Task Endpoint:\\s+(\\S+)");

       Matcher m1 = pattern1.matcher(line);    //Task Endpoint:tmr2slc.vip.ebay.com (ManagedNode)   

       tmr = m1.group(1);   // tmr2slc.vip.ebay.com

       Pattern pattern2 = Pattern.compile("^\\s*(\\S+)\\s+\\S+\\s+(\\S+).*connected");

       Matcher m2 = pattern2.matcher(line);     // slc5b03c-6whp.stratus.slc.ebay.com slctivgw30.slc.ebay.com linux-ix86 41146   446034  connected 

      String server = m2.group(1);  // slc5b03c-6whp.stratus.slc.ebay.com 

      String type = m2.group(2);   // linux-ix86

       //其中group(0)就表示的是整个匹配的字符串

      手机号码匹配: "^((13[0-9])|(15[0-3,5-9])|(18[0,5-9]))\\d{8}$"

      email匹配:"^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"

      验证身份证:"(^\\d{17}[a-zA-Z0-9]$)|(^\\d{14}[a-zA-Z0-9]$)"

      url验证:  "^http://[\\w\\.\\-]+(?:/|(?:/[\\w\\.\\-]+)*)?$"         (?:/|(?:/[\\w\\.\\-]+)*)? 这个表示路径可以为空、/结尾

   ip验证:
"(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)"
总是感觉怪怪的。


      

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: