我正在尝试读取文本文件,按照下面的说明拆分内容,并将拆分的注释附加到 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/