我有一个查询,它连接两列的值并返回一个字符串,如下所示:
423545(50),AXX-10, ABB-1234X(30), 7568787(50),53654656,2021947(50),ABCD-2343423,FDKHD-324342(20),
我想拆分该字符串并将其放入一个数组中,丢弃括号中的所有值。输出如下所示:
[423545,AXX-10, ABB-1234X, 7568787,53654656,2021947,ABCD-2343423,FDKHD-324342]
我知道我可以使用String.split()但是字符串末尾的可选括号值和逗号会使它复杂化。
提前致谢。
答案 0 :(得分:1)
您可以分为两种模式: -
\\(\\d+\\),[ ]*
上的一个,用于处理括号中的术语,[ ]*
,它适用于正常的,
分隔值。您只需要使用pipe(|)
合并这些正则表达式,然后立即执行拆分。
因此,您的拆分标准变为: -
str.split("(?:\\(\\d+\\),[ ]*)|(?:,[ ]*)");
可以进一步简化为: -
str.split("(?:\\(\\d+\\))?,[ ]*");
我们只是选择了一个部分,然后把共同部分放在外面。
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以过滤掉parens中的值,然后拆分。
String str = "423545(50),AXX-10, ABB-1234X(30), 7568787(50),53654656,2021947(50),ABCD-2343423,FDKHD-324342(20)";
String str2 = str.replaceAll("\\(\\d+\\)", "");
for (String string : str2.split(",")) {
System.out.println(string);
}