Java Pattern 正则表达式

Java Pattern 正则表达式

正则表达式(Regular Expression),又称规则表达式,可以用于描述文本模式。在Java语言中,我们借助Pattern对象实现正则表达式的使用。在Java中,正则表达式的基本语法与其他编程语言大致相同,在此就不再一一介绍。本文将重点介绍Java中Pattern对象的使用。

Pattern的创建

在使用Pattern对象之前,需要先创建一个Pattern对象。它的创建方法如下:

Pattern pattern = Pattern.compile("正则表达式");

其中,参数为一个正则表达式字符串。例如:

Pattern pattern = Pattern.compile("\\d+");

这个正则表达式的含义是:匹配至少一个数字字符(0-9)。

Matcher对象

创建完Pattern对象之后,我们需要使用Matcher对象进行正则表达式的匹配。Matcher对象是一个字符串匹配器,它在进行正则表达式匹配时会根据Pattern对象创建,并对指定文本串进行匹配。语法如下:

Matcher matcher = pattern.matcher("待匹配字符串");

使用上述语句,我们创建了一个Matcher对象,该对象用于匹配待匹配字符串。例如:

Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("Hello 123 Java");

上述代码中,matcher对象用于匹配”Hello 123 Java”字符串中的数字字符。

Matcher的方法

Matcher对象是Pattern对象的匹配器,Matcher类提供了多种方法用于对字符串进行匹配。下面我们将简单地列举Matcher常用方法。

find方法

Matcher类的find方法用于在调用字符串中查找匹配模式。如果找到匹配,该方法返回true。

if(matcher.find()){
    //某些处理
}

group方法

Matcher类的group方法用于返回一个由匹配模式匹配到的输入子序列。

String matchedString = matcher.group();

此方法返回的是匹配到的字符串子串,例如,matcher.group()将返回”123″。

start和end方法

Matcher类的start方法用于返回匹配模式在输入字符串中的起始位置。Matcher类的end方法用于返回匹配模式在输入字符串中的结束位置。例如:

int startPoint = matcher.start();
int endPoint = matcher.end();

此代码将分别返回字符串中匹配模式的起始位置和结束位置。

replaceFirst方法

Matcher类的replaceFirst方法用于将匹配模式替换为给定的字符串。

String replacedString = matcher.replaceFirst("hi");

上述代码将匹配到的第一个模式用”hi”替换。

示例

下面我们将演示一个完整的示例程序。在该程序中,我们将通过正则表达式匹配出一段文本串中的全部时间格式。

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

public class TimeMatcher {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("(\\d{4})-(\\d{1,2})-(\\d{1,2})\\s+(\\d{1,2}):(\\d{1,2})");
        Matcher matcher = pattern.matcher("2022-06-23 11:59 The time is 12:30");
        while (matcher.find()) {
            String timeString = matcher.group();
            System.out.println(timeString);
        }
    }
}

在上述示例程序中,我们使用了一个正则表达式,匹配了标准时间格式yyyy-mm-dd hh:mm,并在待匹配的字符串中寻找该格式的子串。匹配成功后将打印出最后匹配到的文本串。

结论

本文介绍了Java中正则表达式的使用,及Pattern和Matcher对象的创建和使用。同时,我们演示了一个完整示例程序,以便于用户在开发实际应用时能够更好地掌握Java中正则表达式的使用。需要注意的是,在正则表达式的使用中,需要多加注意各种特殊字符的转义问题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程