Java中的正则表达式
Java中的正则表达式
相关类
Java中正则表达式的相关应用主要集中在包java.util.regex
中,并且相关的主要类为Pattern
和Matcher
。
Pattern
:Pattern对象是一个正则表达式的编译表示。它不提供公共的构造方法,而是通过一个Pattern的静态方法来获取Pattern对象,该方法接受一个字符串参数,即为对应的正则表达式。Matcher
:Matcher对象则是用来对输入字符串进行匹配操作的。它也不提供公共的构造方法,获取一个Matcher对象需要通过调用Pattern对象的matcher方法来获得。
在使用过程中,我们通常是通过Pattern的静态方法获取到Pattern对象之后,再通过该对象的matcher方法获取到Matcher对象。之后相关的匹配操作就是通过Matcher对象来完成的。
常用方法介绍
是否能匹配
判断给定的字符串能够匹配正则表达式,使用matches
方法。
1 |
|
matches()和lookingAt()方法否用来尝试匹配一个输入序列模式。它们的不同是前者要求整个序列都匹配,而后者不需要整个序列都匹配,但还是需要从第一个字符开始匹配。
捕获匹配项
在给定的字符串中捕获所有的匹配项。
这里的正则表达式
(?<=)
,(?=)
表示需要匹配对应模式,但是不包含在结果中。在进行模式匹配的时候有很大的作用。例如下面的例子中的
(?<=a)\d*(?=b)
,则表示匹配开头为a,结尾为b,中间为数字的字符串,但是实际匹配的结果只返回中间的数字
1 |
|
输出结果为:
1 |
|
这里的find()
方法调用之后,会偏移到下一个匹配。然后调用group()
方法返回当前匹配的值。该过程类似于迭代器,表示迭代匹配并获取结果。
匹配索引
使用start和end可以获得当前匹配的索引。需要结合find
方法一起使用。
1 |
|
输出如下:
1 |
|
文本替换
文本替换表示将匹配项替换为指定的字符串。相关的方法有replaceFirst
和replaceAll
方法:
1 |
|
输出如下:
1 |
|
参考文章
Java中的正则表达式
http://example.com/2022/11/17/Java中的正则表达式/