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

错误在 split 部分。

现有字符串:

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
...

请建议如何纠正这个问题。

最佳答案

在正则表达式中使用 positive lookbehind :

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

此表达式匹配 , 前面的 ) ,但由于后视部分 (?<=\\)) 是非捕获(零宽度),因此它不会作为拆分分隔符的一部分被丢弃。

有关环视断言和非捕获组的更多信息可以在 javadoc of the Pattern class 中找到。

关于java - 拆分并替换 Java 字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43177972/

10-09 04:10