Pattern与Matcher类

简介: Java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中。 模式对象 pattern p = Pattern.compile("abc");//Pattern类调用compile(String regex)返回一个模式对象,其中regex是一个正则表达式。

Java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中。

模式对象

pattern p = Pattern.compile("abc");//Pattern类调用compile(String regex)返回一个模式对象,其中regex是一个正则表达式。
如果参数rege x指定的正则表达式有错,compile方法将抛出异常PatternSyntaxException。

匹配对象

Matcher m = p.matcher(s);//模式对象调用matcher(CharSequence input)方法返回一个Matcher对象

代码示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
	public static void main(String[] args) {
		String regex = "abc";
		Pattern p = Pattern.compile(regex);
		String s = "abcdf abcgh abc abc 123as";
		Matcher m = p.matcher(s);
		while(m.find()){
			String str = m.group();
			System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
			System.out.println(str);
		}
	}
}
输出结果为:
从0到3匹配模式子序列:abc
从6到9匹配模式子序列:abc
从12到15匹配模式子序列:abc
从16到19匹配模式子序列:abc

代码解释

上面这个示例代码实现了在字符串s中找regex子串并输出子串所在的位置。

目录
相关文章
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
Kotlin
Kotlin之Hello,World
Kotlin之Hello,World
231 1
|
缓存 Java Windows
IDEA查询控制台打印的历史数据
IDEA查询控制台打印的历史数据
2677 0
|
分布式计算 安全 Java
Spark 编译出现 InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Spark 编译出现 InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
491 0
|
运维 Prometheus 监控
微服务架构下的服务治理实践
【7月更文挑战第27天】在微服务架构的浪潮中,服务治理作为确保系统稳定性和高可用性的关键手段,其重要性日益凸显。本文将探讨微服务架构下服务治理的核心要素,包括服务发现、配置管理、流量控制等,并结合实例分析如何有效实施服务治理策略,以提升系统的弹性、监控能力和安全性。通过本文,读者将获得一套实用的服务治理框架,以及面对复杂服务交互时保持清晰治理视野的方法。
|
测试技术
Uniapp | uniapp多环境开发部署
在vue2中我们可以直接在package.json中添加代码,获取环境只需要 process.env 获取到,运行的时候,会有三个选项,执行某一个即可。
391 0
Uniapp | uniapp多环境开发部署
165Echarts - 漏斗图(Funnel Chart)
165Echarts - 漏斗图(Funnel Chart)
204 0
|
XML 存储 数据格式
【JavaWeb】HTTP状态码100、200、300、400、500、600的含义
【JavaWeb】HTTP状态码100、200、300、400、500、600的含义
1885 0
|
Linux 存储控制器 芯片
ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动
ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动
1016 0
ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动
|
机器学习/深度学习 编解码 人工智能