正则表达式是一种强大的文本匹配工具,可以用来进行字符串的模式匹配与检索。在 Java 中,可以使用正则表达式过滤出字母、数字和中文。下面将分为三个段落介绍如何使用正则表达式来实现。

1. 过滤字母

使用正则表达式来过滤字母可以使用字符类(character class)来匹配大写字母和小写字母。其中,表达式 [a-zA-Z] 可以匹配任意大小写的字母。


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

public class Main {
    public static void main(String[] args) {
        String input = "abc123ABC中文";
        String regex = "[a-zA-Z]+";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}
Java

上述代码输出结果为:

abc
ABC

2. 过滤数字

使用正则表达式过滤数字可以使用字符类 \d 来匹配数字。字符类 \d 等价于 [0-9],可以匹配任意一个数字。


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

public class Main {
    public static void main(String[] args) {
        String input = "abc123ABC中文";
        String regex = "\\d+";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}
Java

上述代码输出结果为:

123

3. 过滤中文

使用正则表达式过滤中文可以使用 Unicode 编码来匹配中文字符。中文字符的 Unicode 编码范围为 \u4e00-\u9fa5。


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

public class Main {
    public static void main(String[] args) {
        String input = "abc123ABC 中文 ";
        String regex = "[\\u4e00-\\u9fa5]+";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}
Java

上述代码输出结果为:

中文

综上所述,使用正则表达式可以过滤出字母、数字和中文。对于字母可以使用字符类 [a-zA-Z],对于数字可以使用字符类 \d,对于中文可以使用 Unicode 编码范围 [\u4e00-\u9fa5] 来匹配。