Java 正则表达式

本文介绍了Java String类中正则表达式的基本操作,如replaceAll、replaceFirst、split和matches,以及Pattern和Matcher类的使用实例。重点讲解了如何利用正则表达式匹配和替换字符串中的特定模式,以及分组和捕获的应用。
摘要由CSDN通过智能技术生成

String类中支持正则表达式的方法:

.replaceAll() //将字符串中符合条件的内容替换成指定子串,

.replaceFirst()//将字符串中符合条件的内容替换成指定子串,仅替换第一个

.split() //将字符串按括号内字符分割成数组

.matches() // 判断字符串是否有指定子串

[\u4e00-\u9fa5] 表示任意汉字(Unicode码)

.表示匹配一个任意字符

\d 代表0-9 等价于 [0-9]

+ 代表前面字符出现的次数 从1次到无限次 等价于 {1,}

* 代表前面字符出现的次数 从0次到无限次 等价于{0,}

| 代表或,写法为 “([A-Z]|[a-z])”

\s 空格

?相当于它前面的字符出现的次数{0,1}

^表达式开始

$表达式结尾

{n} n个

{n,} n个或多个

{m,n} m个到n个

\D 0-9取反 ,[^0-9]

\w [a-zA-Z0-9]

\W a-z,A-Z,0-9取反(不含这些的) [^a-zA-Z0-9]

() 分组

分组例子:分组后不显示<div>

matcher()

判断字符串和正则表达式是否匹配,返回一个boolean类型值

"java52IKLK123".matcher("[a-z]*[0-9]+[A-Z]*.*")//返回true

Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一 个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正 则表达式作为它的第一个参数。

Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样, Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

输出子类

static void ziChuan() {
	String s1 = "<div>my java 20</div>java2018\n<div>my   javascript8</div>\n<div>hello</div><span>java</span><div>java</div>";

//compile("正则表达式",Pattern.CASE_INSENSITIVE);
//Pattern.CASE_INSENSITIVE=2,代表忽略大小写
	Pattern p1 = Pattern.compile("<div>[a-z0-9 ]*java[a-z0-9\\s]*</div>", 2);
	Matcher m1 = p1.matcher(s1);

	while (m1.find()) {
		System.out.println(m1.group());
	}
}

在这里插入图片描述

分组

static void fenZu() {
String s1 = "<div>my java 20</div>java2018\n<div>my javascript8</div>\n<div>hello</div><span>java</span><div>java</div>";

Pattern p1 = Pattern.compile("(<div>[a-z0-9 ]*)(java)([a-z0-9\\s]*</div>)", 2);
Matcher m1 = p1.matcher(s1);

String s2 = m1.replaceAll("$1$2+++$3");
System.out.println(s2);
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值