求一正则表达式写法,多个分组+匹配
发布网友
发布时间:2022-04-29 01:23
我来回答
共1个回答
热心网友
时间:2022-04-23 06:48
正则表达式:\(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)); //标准尺寸比
}
}
}
追问谢谢回答,但是key和value的内容是不定的,类似这种:(k1,v1)(k2(xx),v2)(k3,v3(33))(k4(44),v4(44))
怎么输出:
K1 v1
K2(xx) v2
K3 v3(33)
K4(44) V4(44)