拆分并替换Java字符串

时间:2017-04-03 06:37:49

标签: java string

我正在尝试读取文本文件,按照下面的说明拆分内容,并将拆分注释附加到Java列表中。

错误发生在拆分部分。

现有字符串:

a1(X1, UniqueVar1), a2(X2, UniqueVar1), a3(UniqueVar1, UniqueVar2)

预期 - 将它们拆分并将它们附加到Java列表中:

a1(X1, UniqueVar1)
a2(X2, UniqueVar1)
a3(UniqueVar1, UniqueVar2)

代码:

subSplit = obj.split("\\), ");
for (String subObj: subSplit)
{
    System.out.println(subObj.trim());
}

结果:

a1(X1, UniqueVar1
a2(X2, UniqueVar1
...

请建议如何纠正此问题。

1 个答案:

答案 0 :(得分:9)

在正则表达式中使用positive lookbehind

String[] subSplit = obj.split("(?<=\\)), ");

此表达式与前面带有,的{​​{1}}相匹配,但因为后瞻部分)是非捕获(零宽度),所以它不会被丢弃成为拆分分离器的一部分。

有关环视断言和非捕获组的更多信息,请参阅javadoc of the Pattern class