Java正则表达式

先推荐一篇博客文章: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);
	} 
}

运行结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值