java 正则表达式

来源:互联网 发布:杭州整站优化公司 编辑:程序博客网 时间:2024/06/05 14:51
概念

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

正则表达式常用语法:
[] 代表一位
[a-z]{5} 限制必须是5位并且每一位的范围是a到z之间
 [a-zA-Z0-9]{5,11} 限制必须是5位到11位并且每一位的范围是a到z之间或A到Z之间或0到9之间
 [a-z]{5,} 限制必须是5位以上并且每一位的范围是a到z之间
 [a-z]{0,5} 限制必须是5位以下并且每一位的范围是a到z之间
 [\\d]等于[0-9]
 [\\w]等于[a-zA-Z0-9]
 如果一个位的取值只有一个可以省略括号,但这个值不能是 .,因为.代表任意字符
 
 qq邮箱:
 [1-9][09]{4,10}@qq[.]com
 [1-9][09]{4,10}[@][q][q][.][c][o][m]
 
 字符串使用正则表达式的方法:

1. matches(String regex)  告知此字符串是否匹配给定的正则表达式。

   如:匹配邮箱

    
  String emial = "yztc@163.com";           boolean matches = emial.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");              System.out.println(matches);//true

2. public String replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
        
 String src = new String("ab43a2c43d");         System.out.println(src.replaceAll("[\\d]","f")); =>abffafcffd         System.out.println(src.replaceAll("[a]","f")); =>fb43fc23d

3. public String replaceFirst(String regex, String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
        
 String src = new String("ab43a2c43d");         System.out.println(src.replaceFirst("[\\d],"f")); =>abf32c43d         System.out.println(src.replaceFirst("[4]","h")); =>abh32c43d


4. split(String regex) ; 根据给定正则表达式的匹配拆分此字符串。
      
 String mime = "12:2E:D2:4F:14:EE";              String[] split = mime.split("[:]");              for (String str : split) {       System.out.print(str+" ");       }

       //将输出:
       //12 2E D2 4F 14 EE