正则表达式了解
正则表达式
一、字符
[a-z] // 匹配所有的小写字母
[A-Z] // 匹配所有的大写字母
[a-zA-Z] // 匹配所有的字母
[0-9] // 匹配所有的数字
[ \f\r\t\n] // 匹配所有的白字符
说明
:特殊字符 .(点,句号)在正则表达式中用来表示除了”新行”之外的所有字符
二、数字类
[0-9]:字符串这个位置只能是数字
[^0-9]:字符串这个位置不能是数字
[\d]:等同于[0-9]
[\D]:等同于[^0-9]
三、数量词
x{m} :x字符或字符簇只出现m次
//例:a{2}表示a只出现两次
x{m,}:x字符出现m或更多的次数
x{m,n}:前面的内容至少出现m次,但不超过n次
x? :x这个字符出现一次或一次也没有
x* :x这个字符出现零次或多次
x+:x这个字符出现至少一次
四、预定义字符
[\w]:文字字符,包含字母,数字,下划线[a-zA-Z0-9_]
[\W]:文字字符,不能包含字母,数字,下划线[^a-zA-Z0-9_]
五、正则表达式的应用
验证QQ邮箱
public class ZhengZeText {
public static void main(String[] args) {
ZhengZeText text = new ZhengZeText();
text.method1();
}
public void method1(){
String atr = "1342328788@qq.com";
//正则规则
String ze = "[\\w]+@[a-z]+\\.[a-z]+";
boolean a = atr.matches(ze);
System.out.println(a);
}
}
拆分字符串
public class SplitText {
public static void main(String[] args) {
SplitText text = new SplitText();
text.method1();
}
public void method1(){
String str = "aj1sg2fi34u54a";
String[] strings = str.split("[\\d]+");
for (int i = 0;i<strings.length;i++){
System.out.println(strings[i]);
}
}
}
替换字符串中的字符
将字符串中的数字转换成@符号
public class ReplaceText {
public static void main(String[] args) {
ReplaceText text = new ReplaceText();
text.method2();
}
public void method2() {
String str = "kjd54gf6asj78d5gf";
String restring = "[\\d]";
String re = str.replaceAll("[\\d]","@");
System.out.println(re);
}
}