求一正则表达式写法,多个分组+匹配

2025-06-28 03:07:10
推荐回答(1个)
回答1:

正则表达式:\(PE等级,(.*?)\)\(颜色,(.*?)\)\(生产标准\(国准\),(.*?)\)\(标准尺寸比,(.*?)\)

\( 和 \) 是转义括号,匹配原文中本来的小括号

(.*?) 是每一个分组匹配的内容

匹配结果:

第一组:PE100  

第二组:黑

第三组:GB/T 15558.1

第四组:SDR11

Java代码测试例子:

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

public class Test {
    public static void main(String[] args) {
        String text = "(PE等级,PE100)(颜色,黑)(生产标准(国准),GB/T 15558.1)(标准尺寸比,SDR11)";

        Pattern pattern = Pattern.compile("\\(PE等级,(.*?)\\)\\(颜色,(.*?)\\)\\(生产标准\\(国准\\),(.*?)\\)\\(标准尺寸比,(.*?)\\)");

        Matcher matcher = pattern.matcher(text);
        if (matcher.find()) {
            System.out.println(matcher.group(1));  //PE等级
            System.out.println(matcher.group(2));  //颜色
            System.out.println(matcher.group(3));  //生产标准
            System.out.println(matcher.group(4));  //标准尺寸比
        }
    }
}