一.介绍:
正则表达式在java.util.regex里面,具体的各种用法可以查找api手册
二. 常用格式
其中:^表示以此正则表达式开始 $是以此正则表达式结尾
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
7 身份证号:
15或18位身份证:^\d{15}|\d{18}$
15位身份证:^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
8 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
9 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)
1.替换文档里面某个字符串
String str="张三和王四是中国人";
String regex2="[(张三)(王四)]";//一个*代替一个字
String regex3="(张三)";//一个字代替一个括号里面的内容
String str2=str.replaceAll(regex2,"*");
System.out.println(str2);
String str3=str.replaceAll(regex3,"*");
2.分组替换,如替换手机号的中间四位
idCard.replaceAll("(\\d{4})\\d{10}(\\w{4})","$1*****$2");
4304*****7733
$1、$2、……表示正则表达式里面第一个、第二个、……括号
但是 对应括号内的内容不替换
2. 查找比如超找英文作文中单个字符的单词
使用 Pattern Matcher
String str4="gello hh jjjnihao good god dog mmm";
Pattern a=Pattern.compile("\\b[a-zA-Z]{3}\\b");
Matcher m=a.matcher(str4);
while (m.find()) {
System.out.println(m.group());
}
}