Java 过滤掉匹配的内容
介绍
在 Java 开发中,我们经常需要对字符串进行过滤和处理。有时候我们需要从一个字符串中提取出符合特定条件的内容,或者移除掉不符合特定条件的内容。本文将介绍如何使用 Java 进行内容过滤,包括正则表达式、字符串函数等方法。
正则表达式
正则表达式是一种用于匹配、搜索和替换字符串的强大工具。在 Java 中,可以使用 java.util.regex 包提供的类来进行正则表达式操作。
正则表达式的基本语法
正则表达式由特殊字符和普通字符组成。特殊字符具有特殊的含义,普通字符则表示其字面值。下表列出了一些常用的特殊字符和它们的含义:
字符 | 含义 |
---|---|
. | 匹配任意单个字符 |
\d | 匹配任意数字 |
\w | 匹配任意字母、数字或下划线字符 |
\s | 匹配任意空白字符 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
* | 匹配前面的元素零次或多次 |
+ | 匹配前面的元素一次或多次 |
? | 匹配前面的元素零次或一次 |
{n} | 匹配前面的元素恰好 n 次 |
{n,} | 匹配前面的元素至少 n 次 |
{n,m} | 匹配前面的元素至少 n 次,最多 m 次 |
使用正则表达式进行匹配
下面是一个使用正则表达式进行匹配的示例:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String str = "Hello, 123 World!";
String regex = "\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
String matched = matcher.group();
System.out.println("Matched: " + matched);
}
}
}
在上面的示例中,我们使用 Pattern.compile()
方法编译正则表达式,并使用 Matcher
对象进行匹配操作。matcher.find()
方法用于找到下一个匹配项,matcher.group()
方法用于获取匹配的内容。
以上代码输出如下结果:
Matched: 123
使用正则表达式进行替换
除了匹配操作,我们还可以使用正则表达式进行替换。下面是一个使用正则表达式进行替换的示例:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String str = "Hello, 123 World!";
String regex = "\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
String replaced = matcher.replaceAll("ABC");
System.out.println("Replaced: " + replaced);
}
}
在上面的示例中,我们使用 matcher.replaceAll()
方法将匹配到的内容替换为指定的字符串。
以上代码输出如下结果:
Replaced: Hello, ABC World!
字符串函数
除了正则表达式,Java 还提供了许多字符串函数,可以用于过滤和处理字符串。
startsWith() 和 endsWith()
startsWith()
方法用于检查字符串是否以指定的前缀开头,endsWith()
方法用于检查字符串是否以指定的后缀结尾。下面是一个使用这两个方法进行过滤的示例:
public class StringExample {
public static void main(String[] args) {
String str = "Hello, World!";
if (str.startsWith("Hello")) {
System.out.println("Starts with Hello");
}
if (str.endsWith("World!")) {
System.out.println("Ends with World!");
}
}
}
以上代码输出如下结果:
Starts with Hello
Ends with World!
contains()
contains()
方法用于检查字符串