总结一些常用的正则表达式:
匹配国内电话号码:
\d{3}-\d{8}|\d{4}-\{7,8}
匹配18位身份证号:
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
匹配邮箱:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
匹配中文:
[\u4e00-\u9fa5]
匹配双字节字符(包括汉字):
[^\x00-\xff]
匹配空白行:
\n\s*\r
匹配网址:
[a-zA-z]+://[^\s]*
匹配腾讯qq号:
[1-9][0-9]{4,}
匹配中国邮政编码:
[1-9]\d{5}(?!\d)
匹配年月日格式:
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
java中正则表达式的运用
a.字符串的替换:
String对象调用public String replaceAll(String regex,String replacement)方法返回一个新的String对象,把当前String对象的字符串序列中所有和参数匹配的子字符串序列,用参数replacement的字符串序列替换以后得到字符串序列,
例1:
String str="12helloworld".replaceAll("[a-zA-Z]+","你好");
输出为:12你好567你好
例2:输出输入字符串中只含字母的那一部分,
System.out.println("请输入:");
Scanner reader = new Scanner(System.in);
String str = reader.nextLine();//字符串获取
String regex = "[a-zA-Z]+";
String s = str.replaceAll("[^a-zA-Z]","");
System.out.printf(s);
b.字符串序列的分解:
public String[] split(String regex),调用该方法使用参数指定的正则表达式regex作为分隔符标记分解出当前String对象的字符序列中的单词,并将其存入数组中:
String digitWord[] = str.split(regx);