Java 正则表达式

正则表达式

1.含义

用来描述或者匹配一系列符合某个语句规则的字符串

Pattern:代表正则表达式的匹配模式
Matcher:提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持

2.案例

把一个字符串中带电话号码替换成130****1111

public class Test01 {
	
	public static void main(String[] args) {
		
		String str = "小红13012341111 小绿15112342222";
		
		//正则表达式的字符串
		String regex = "(\\d{3})(\\d{4})(\\d{4})";
		
		String replaceAll = str.replaceAll(regex, "$1****$3");
		
		//底层原理:
//		Pattern pattern = Pattern.compile(regex);//获取正则表达式的对象
//		Matcher matcher = pattern.matcher(str);//匹配结果
//		String replaceAll = matcher.replaceAll("$1****$3");//替换
		
		System.out.println(replaceAll);
		
	}

}
3.案例

校验QQ邮箱

public class Test02 {
	
	public static void main(String[] args) {
		
		String str = "1445584980@qq.com";
		
		//正则表达式的字符串
		String regex = "\\d{5,10}@qq.com";
		
		boolean matches = str.matches(regex);
		//底层原理:
//		Pattern pattern = Pattern.compile(regex);//获取正则表达式对象
//		Matcher matcher = pattern.matcher(str);//获取匹配结果
//		boolean matches = matcher.matches();//判断是否完全匹配
		
		System.out.println(matches);
	}

}

4.案例

分隔路径

public class Test03 {
	
	public static void main(String[] args) {
		
		String str = "C:\\资源\\日韩\\波多野结衣.avi";
		
		//正则表达式的字符串
		String regex = ":?\\\\";
		
		String[] split = str.split(regex);
		//底层原理
//		Pattern pattern = Pattern.compile(regex);//获取正则表达式的对象
//		String[] split = pattern.split(str);//分隔
		
		for (String string : split) {
			System.out.println(string);
		}
		
	}

}
5.案例

Pattern+Matcher 找到前端代码中的图片路径

public class Test04 {
	
	public static void main(String[] args) {
		
		String str = "<img src='hhy/aaa.jpg'/><div><div/> <input type='image' src='submit.gif' /><img src='bbb.jpg'/>";
		
		//正则表达式的字符串
		String regex = "<img\\b[^>]*\\bsrc\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg)\\b)[^>]*>";
		
		//获取正则表达式对象
		Pattern pattern = Pattern.compile(regex);
		//获取匹配结果的对象
		Matcher matcher = pattern.matcher(str);
		
//		System.out.println("在字符串中是否整个匹配:" + matcher.matches());
//		System.out.println("在字符串中是否开头就匹配:" + matcher.lookingAt());
//		System.out.println("在字符串中是否有包含匹配:" + matcher.find());
		
		//遍历查找
		while(matcher.find()){
			String group = matcher.group(2);//获取匹配结果
			System.out.println(group);
		}	
	}

}
6.总结

Pattern与Matcher一起合作
Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持.
单独用Pattern只能使用Pattern.matches(String regex,CharSequence input)一种最基础最简单的匹配。

7.经验

1.正则表达式在工作中实际应用在验证邮箱、验证手机号码、替换字符串
2.正则表达式几乎不用我们自己写,百度即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆傻傻代码搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值