Java正则表达式 Pattern 类的用法
2023-09-11 14:22:11 时间
一、 Pattern类简介
public final class Pattern extends Object implements Serializable
正则表达式的编译表示。
必须首先将正则表达式(指定为字符串)编译为此类的实例。 然后将所得的图案可以被用来创建一个Matcher
对象可以匹配任意character sequences针对正则表达式。 执行匹配的所有状态都驻留在匹配器中,所以许多匹配者可以共享相同的模式(API摘录)。
1.1特殊字符
1.2限定符
二、简单示例
2.1匹配数字
/**
* \d 的含义是 [0-9]
* \D 的含义是 [^0-9]
* {n} 匹配确定 n 次
*/
public static void matchNumber() {
Pattern p = Pattern.compile("summary_day\\.\\d+[0-9]\\.\\d{17}");
Matcher m = p.matcher("ipva.summary_day.20210621.20210622000205860.B20C41AB-0A17-46DB-9177-817533B8E551.1624291336921.txt");
System.out.println(m.pattern()); //myArray\[\d\]
while (m.find()){
System.out.println(m.group());
}
}
2.2匹配字母
/**
* \w 任何一个字母数字字符(大小写均可)或下划线,等价于 [A-Za-z0-9_]
* \W 表示[^A-Za-z0-9_]
* + 匹配前面的子表达式或一次或多次
*/
public static void matchAlphanum() {
Pattern pattern = Pattern.compile("^ipva\\.\\w+");
Matcher matcher = pattern.matcher("ipva.summary_day.20210621.20210622000205860.B20C41AB-0A17-46DB-9177-817533B8E551.1624291336921.txt");
while (matcher.find()) {
System.out.println(matcher.group(0));
}
}
2.3特殊字符一
/**
* "*" 表示含有零个或者多个
* "+" 匹配前面的子表达式或一次或多次
*/
public static void matchRepeat() {
Pattern pattern = Pattern.compile("\\w+[\\w\\.]*@[\\d]+\\.\\w+");
Matcher matcher = pattern.matcher("Hello .kangll@163.com is my email address.");
while (matcher.find()) {
System.out.println(matcher.group(0));
}
}
2.4特殊字符二
/**
* "*" 表示含有零个或者多个
* "+" 表示匹配前面的子表达式或一次或多次
* "?" 表示匹配零个或者一个字符
*/
public static void matchRepeat02() {
Pattern pattern = Pattern.compile("http[s]?://[\\w\\.]+");
Matcher matcher = pattern.matcher("The URL is http://www.kangll.com/");
while (matcher.find()) {
System.out.println(matcher.group(0));
}
}
谢谢点赞和关注!
相关文章
- Java学习之java高级特性
- 细说java中Map的两种迭代方式
- Java 代理
- JAVA基础--Java枚举+位操作,巧妙判断是否设置
- Ubuntu安装java的几种方式以及多个JAVA版本的切换
- 【Java】【异常排查】java.lang.NoClassDefFoundError 完美解决
- Java中toArray的用法探究(java数组与list转换)
- Java经典实例:使用正则表达式:测试模式
- Java日期时间使用总结
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- Java打印输出:java在线8x8x
- Java .class 反编译 Luyten,导出 .java文件,查看jar 包目录,超级简单,实用
- Java_类似java.lang.VerifyError: Expecting a stackmap frame at branch target 22 in method的解决方法
- java正则表达式过滤html标签
- 『Java练习生的自我修养』java-se进阶¹ • 初识多线程
- 华为OD机试 -最短耗时(Java) | 机试题+算法思路+考点+代码解析 【2023】
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- java RSA加密解密--转载
- 解决 Maven 无法下载 fastdfs-client-java 依赖。
- Java 正则表达式——贪婪匹配、惰性匹配、支配匹配
- Java三大器之拦截器(Intercepter)的实现原理和代码示例