1.什么是正则表达式?
正则表达式(regex)是一个字符串,由字面值字符和特殊符号组成,用来描述匹配一个字符串集合的模式。简单来说,正则表达式有很多的用途,例如可以判断输入的是否是一个数字,是否是大小写的字母,复杂一点通过正则表达式来判断输入的是否是一个邮箱地址。
2.正则表达式的语法
注意:java中反斜杠\需要用\\来表示
3.正则表达式的一些应用
(1)匹配字符串
用法:string.matches(pattern)返回boolean类型。
String类中的matches方法类似equals方法。例如,以下两个语句结果都为true。
"Java" .matches("Java");
"Java" . equals("Java");
(2)替换和拆分字符串
如果字符串匹配正则表达式,String类的matches方法返回true。string类也包含replaceAll,replaceFirst和split方法,用于替换和拆分字符串。
replaceAll方法替换所有匹配的子字符串,replaceFirst方法替换第一个匹配的子字符串。
System . out . println("Java Java Java" . rep1aceA11("v\\w", "wi"));
>>>Jawi Jawi Jawi
System . out . print1n("Java Java Java" . replaceFirst("v\\w", "wi"));
>>>Jawi Java Java
将字符串"Java1HTML2Per1"拆分为Java、HTML 以及Per1并且保存在tokens[0], tokens[1]以及tokens[2]
String[] tokens = "JavalHTML2Per1" . split("\\d");
(3)其他应用
1、社会安全号的模式是 xxx-xx-xxxx,其中x是一位数字,正则表达式: [\\d]{3}-[\\d]{2}-[\\d]{4}
2、偶数:[\\d]*[02468]
3、电话号码(xxx)xxx-xxxx 第一位数字不能为0 :\\([1-9][\\d]{2}\\)[\\d]{3}-[\\d]{4}
4、假定姓由最多25个字母组成,并且第一个字母为大写形式,正则表达式(姓的模式): [A-Z][a-zA-Z]{1,24}
5、标识符:以字母、下划线或美元符号开始,不以数字开头,由字母、数字、下划线和美元符号组成。正则表达式:[BB-zQQ-Z_$]