Java 的正则表达式可以使用括号来进行分组,通过分组可以方便地提取匹配到的内容。
假设我们有一个字符串:"apple price is 1.99",现在我们想要提取出这个字符串中所有水果的名字和价格,可以使用正则表达式进行匹配和提取。
示例代码如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String input = "apple price is $2.99, orange price is $1.99";
// 定义正则表达式,使用括号进行分组
String regex = "(\\w+) price is (\\$\\d+\\.\\d+)";
// 创建 Pattern 对象,并编译正则表达式
Pattern pattern = Pattern.compile(regex);
// 创建 Matcher 对象,并进行匹配
Matcher matcher = pattern.matcher(input);
// 遍历匹配结果,提取分组内容
while (matcher.find()) {
String fruitName = matcher.group(1);
String fruitPrice = matcher.group(2);
System.out.println(fruitName + ": " + fruitPrice);
在上面的代码中,我们定义了一个正则表达式,其中使用了两个括号进行分组。第一个括号中使用了 \w+
表示匹配一个或多个字母、数字或下划线,用于匹配水果的名字。第二个括号中使用了 \$\d+\.\d+
表示匹配一个美元符号、一个或多个数字、一个点号和一个或多个数字,用于匹配水果的价格。注意在美元符号前面要加上反斜杠,因为美元符号在正则表达式中有特殊含义。
我们创建了一个 Pattern 对象,并编译了正则表达式。然后创建了一个 Matcher 对象,并对输入字符串进行匹配。最后遍历匹配结果,使用 group()
方法提取分组内容,分组编号从 1 开始。
以上就是 Java 正则表达式分组提取的示例代码。希望能对你有所帮助。