先推荐一篇博客文章:Java正则化
正则表达式:其实是一种规则,有自己特殊的应用,其作用就是针对字符串进行操作。
正则:就是用于操作字符串的规则,其中这些规则使用了一些字符来表示。
正则表达式的符号:
正则表达式常用的功能有:匹配验证、查找、切割、替换等:
先讲解两个正则的对象:正则对象:Pattern 和匹配器:Matcher
用法范例:
String regEx = "a*b";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher("aaaaaab");
boolean b = m.matches();
步骤:
(1)先将正则表达式编译成正则对象,使用的是Pattern类的一个静态方法:compile(regEx);
(2)让正则对象和要操作的字符串相关联,通过matcher方法完成,并返回匹配器对象;
(3)通过匹配器对象的matches()方法将正则模式作用到字符串上对字符串进行针对性的操作。
1、匹配验证:验证Email是否正确
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args){
//要验证的字符串
String str = "pcwl@163.com";
//邮箱验证规则
String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-Z0-9]-*){1,}\\.){1,3}[a-zA-Z\\-]{1,}";
//编译正则表达式
Pattern pattern = Pattern.compile(regEx);
//忽略大小写的写法
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
//判断字符串书否与正则表达式相匹配
boolean rs = matcher.matches();
System.out.println(rs);
}
}
运行结果:
2、查找:在字符串中查询字符或者字符串
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args){
//要验证的字符串
String str = "pcwl@163.com";
//邮箱验证规则
String regEx = "pcwl*";
//编译正则表达式
Pattern pattern = Pattern.compile(regEx);
//忽略大小写的写法
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
//判断字符串书否与正则表达式相匹配
boolean rs = matcher.find();
System.out.println(rs);
}
}
运行结果:
3、切割功能:根据空格对一段字符串进行切割
public class Test {
public static void main(String[] args){
String str = "aa bb cc";
String[] arr = str.split(" +"); //regEx = " +";
for(String s : arr){
System.out.println(s);
}
}
}
运行结果:
4、替换功能:把手机号替换成“*”号
public class Test {
public static void main(String[] args){
String str = "手机号:13888888888手机号:13888888888手机号:13888888888手机号:13888888888";
//正则表达式:首位必须是1,第二位是【345678】中的一位,后面9位是【0-9】之间的
String regEx = "1[345678]\\d{9}";
str = str.replaceAll(regEx,"******");
System.out.println("替换后的字符串为" + str);
}
}
运行结果: