Java正则表达式函数和用法
Java正则表达式是一种用于匹配和操作字符串的强大工具。它使用特定的符号和语法规则,可以根据某种规律来匹配、查找、替换和分割字符串。
Java提供了java.util.regex包来支持正则表达式。在该包中,主要使用了以下几个类和方法:
1. Pattern类:表示一个正则表达式的编译结果,可以用来创建Matcher对象。
- Pattern.compile(String regex):将给定的正则表达式编译为Pattern对象。
- Pattern.matches(String regex, CharSequence input):判断给定的字符串是否与正则表达式匹配。
- Pattern.matcher(CharSequence input):创建一个匹配给定字符串的Matcher对象。
2. Matcher类:用于对字符串进行匹配和操作。
- Matcher.matches():尝试将整个输入序列与该模式进行匹配。
- Matcher.find():尝试找到与该模式匹配的输入序列的下一个子序列。
- Matcher.group():返回上次匹配操作期间匹配过的输入子序列。
- Matcher.replaceFirst(String replacement):替换 个匹配的子序列。
- Matcher.replaceAll(String replacement):替换所有匹配的子序列。
- Matcher.split():根据正则表达式拆分输入序列。
下面是几个常用的Java正则表达式的示例:
1. 匹配整数:
Pattern pattern = Pattern.compile("\\d+"); // 匹配连续的数字
Matcher matcher = pattern.matcher("12345");
boolean matches = matcher.matches(); // true
2. 匹配邮箱:
Pattern pattern = Pattern.compile("\\w+@\\w+\\.\\w+"); // 匹配邮箱格式
Matcher matcher = pattern.matcher("example@example.com");
boolean matches = matcher.matches(); // true
3. 捕获分组:
Pattern pattern = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})"); // 捕获年月日
Matcher matcher = pattern.matcher("2021-01-01");
if (matcher.matches()) {
String year = matcher.group(1); // 2021
String month = matcher.group(2); // 01
String day = matcher.group(3); // 01
}
4. 替换字符串:
Pattern pattern = Pattern.compile("\\s+");
Matcher matcher = pattern.matcher("hello world!");
String result = matcher.replaceAll("_"); // hello_world!
正则表达式是一种强大而灵活的字符串处理工具,在Java中有着广泛的应用。掌握正则表达式的使用,可以提高字符串处理的效率和灵活性。
