Java 05正则表达式

正则表达式

1.简介

复制代码
一个字符串,指定一些规则,来校验其他的字符串
String s="";规则
需要进行匹配的字符串.matches(s);来判断

2.字符类**(单个)

[abc]
复制代码
String s="[ABC]";
"A".matches(s);返回true
但是如果是"ABC";
会返回false;
因为中括号表示的是其中之1;
如果不写,那么就是"[a][b][c];
[^abc]
复制代码
除了这几个都可以,实际上就是取反
[a-zA-Z0-9]
复制代码
指定范围
[a-dm-p]
复制代码
同理
[a-z&&[def]]
复制代码
交集
[a-z&&[^bc]]
复制代码
除了

3.预定义字符类

\
复制代码
转移字符
例如\t 实际上是\对t进行转移或者说是转义;
.
复制代码
任何字符
split(".");//不可以返回的是正则
所以应该是spilt("\\.");
\d
复制代码
一个数字等于[0-9];
但是\d代表的是转移d
需要多加上一个\才可以;
"
复制代码
同理对"进行转义,需要在前面加上\即可
\D
复制代码
非数字 
等于[^0-9]
\s
复制代码
一个空白字符;
[ \t\n\x0B\f\r]
\S
复制代码
非空白字符
[^\s]
\w
复制代码
英文数字下划线
[A-Za-z_0-9]
\W
复制代码
一个非单词字符
[^\W]

4.数量

X?
复制代码
一次或者0次
X*
复制代码
0次或者多次
X+
复制代码
1次或者多次
X{n}
复制代码
正好n次
X{n,}
复制代码
至少n次
X{n,m}
复制代码
至少n次不超过m次
例子
复制代码
手机号
String sj="[1][3-9]\\d{9}";
邮箱正则
String s="\\w+[@][\\w&&[^_]]+(\\.[a-z]{2,3})+";
System.out.println("haha@hha.qq.com".matches(s));

String 类中与正则相关的常见方法

String replaceAll(String a,String b);
复制代码
按照正则表达式中的内容进行替换
a为正则表达式,b为需要进行替换的内容
spilt
复制代码
返回分割完成的数组

利用正则做爬取

复制代码
|表示或者,跟&&不是很一样
Pattern
复制代码
Pattren p=Pattern.compile(regex);//将正则表达式封装为Pattern对象
//获取匹配器对象
Matcher matcher=pattern.matcher(需要爬取的数据);
mather.find();判断有没有
mather.group();//调用其中的数据,要配合find一起进行使用
所以应当像下面这样进行发去
Arraylist<String> li=new ArrayList();
while(mather.find()){
	li.add(mather.group());
}
相关推荐
华仔啊几秒前
Spring 配置混乱?搞懂这两个核心组件,问题真能少一半
java·后端·spring
喂完待续12 分钟前
【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
java·后端·spring·big data·spring data·序列晋升
郑重其事,鹏程万里15 分钟前
commons-exec
java
龙茶清欢16 分钟前
具有实际开发参考意义的 MyBatis-Plus BaseEntity 基类示例
java·spring boot·spring cloud·mybatis
神龙斗士24019 分钟前
Java 数组的定义与使用
java·开发语言·数据结构·算法
计算机学姐20 分钟前
基于微信小程序的扶贫助农系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
白露与泡影20 分钟前
2025互联网大厂高频Java面试真题解析
java·开发语言·面试
forever銳21 分钟前
java中如何保证接口幂等性
java·后端
柯南二号23 分钟前
【Java后端】MyBatis 和 MyBatis-Plus (MP) 的区别
java·数据库·tomcat
C++chaofan27 分钟前
游标查询在对话历史场景下的独特优势
java·前端·javascript·数据库·spring boot