📜  Java-正则表达式(1)

📅  最后修改于: 2023-12-03 15:16:02.222000             🧑  作者: Mango

Java正则表达式

简介

正则表达式是一种强大的模式匹配工具,可以用来检查字符串是否符合特定的规则。Java提供了java.util.regex包来支持正则表达式操作。

匹配规则

Java正则表达式的基本元字符如下:

| 元字符 | 描述 | | ------ | ------ | | . | 匹配任意单个字符(除换行符以外) | | * | 匹配前面的子表达式零次或多次 | | + | 匹配前面的子表达式一次或多次 | | ? | 匹配前面的子表达式零次或一次 | | ^ | 匹配行首 | | $ | 匹配行尾 | | [] | 匹配指定范围内的任意单个字符 | | [^] | 匹配指定范围外的任意单个字符 | | () | 标记一个子表达式的开始和结束位置 | | | | 用于分别模式匹配两个表达式,左右表达式均可匹配 |

Java中的正则表达式

Java提供了Pattern和Matcher两个类来支持正则表达式操作。其中,Pattern类用于表示正则表达式,Matcher类则用于匹配输入字符串。

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

public class RegularExpression {
    public static void main(String[] args) {
        String input = "Hello 123 world! How are you?";
        String pattern = "\\d+";
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(input);
        while (m.find()) {
            System.out.println("匹配到:" + m.group());
        }
    }
}
常用方法
Pattern类的常用方法

| 方法 | 描述 | | ------ | ------ | | compile(String regex) | 根据给定的正则表达式编译生成Pattern对象 | | matcher(CharSequence input) | 根据给定的输入字符串创建Matcher对象 | | pattern() | 返回当前Pattern对象的正则表达式字符串表示 |

Matcher类的常用方法

| 方法 | 描述 | | ------ | ------ | | matches() | 尝试将整个输入字符串与该模式匹配 | | find() | 尝试查找与该模式匹配的下一个子序列 | | group(int group) | 返回由先前匹配操作所匹配的输入子序列 | | group() | 返回由先前匹配操作所匹配的字符串 | | start() | 返回匹配的子序列的起始索引 | | end() | 返回匹配的子序列的结束索引加一 |

常用用法
匹配整个字符串
String input = "Hello world!";
String pattern = "Hello world!";
boolean isMatch = Pattern.matches(pattern, input);
System.out.println(isMatch);
匹配特定字符集
String input = "The quick brown fox jumps over the lazy dog.";
String pattern = "[aeiou]";
Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(input);
int count = 0;
while (m.find()) {
    count++;
}
System.out.printf("匹配到了%d个元音字母\n", count);
替换字符串
String input = "John has 3 apples.";
String pattern = "\\d+";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
String output = m.replaceAll("8");
System.out.println(output);
总结

Java正则表达式是一种非常强大的模式匹配工具,可以实现复杂的字符串匹配和替换操作。掌握正则表达式的基本语法和常用方法,可以让我们在Java开发中快速高效地处理字符串。