📅  最后修改于: 2023-12-03 15:16:02.222000             🧑  作者: Mango
正则表达式是一种强大的模式匹配工具,可以用来检查字符串是否符合特定的规则。Java提供了java.util.regex包来支持正则表达式操作。
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());
}
}
}
| 方法 | 描述 | | ------ | ------ | | compile(String regex) | 根据给定的正则表达式编译生成Pattern对象 | | matcher(CharSequence input) | 根据给定的输入字符串创建Matcher对象 | | pattern() | 返回当前Pattern对象的正则表达式字符串表示 |
| 方法 | 描述 | | ------ | ------ | | 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开发中快速高效地处理字符串。