在拆分位置之前拆分存在理想分隔符的Java字符串

时间:2015-06-12 00:07:29

标签: java regex

我不确定如何使用Java String.split()函数将以下字符串分成2个单独的字符串。我想拆分它们,使每个字符串以" {" cluster ..."。

开头。

我不能只使用逗号作为分隔符,因为逗号存在于我要分割的位置之前的位置。

我可以在技术上将其拆分为文字"},",然后重新添加"}"到领先的字符串,但我想知道是否有一个不那么混乱的方式。

{"簇":"默认""名称":" 1.2.3.4"" queryEndpoint":" http://1.2.13.4:809/query/service"" adminEndpoint":" http://1.2.3.4:809/admin""选择"日期null},{"簇":"默认""名称":" 110.258.30.54"" queryEndpoint&# 34;:" http://110.258.30.54:809/query/service"" adminEndpoint":" http://110.258.30.54:809/admin""选择":空}

感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

正面看后面

这是使用正则表达式外观的一个很好的例子。

你可以使用这个正则表达式在他的回答中显示saka1029显示正面的后视:

(?<=}),

Regular expression visualization

积极向前看

或者你可以像这样使用积极的前瞻:

,(?={)

Regular expression visualization

正面两种看法

你甚至可以同时使用两者:

(?<=}),(?={)

Regular expression visualization

两种外观均为正面

如果你想要......你可以使用其中任何一个:

(?<=}),|,(?={)

Regular expression visualization

Java代码

因此,你可以在这样的代码中使用你想要的任何正则表达式:

String regex = "<choose whatever regex you want>";
String[] t = s.split(regex);

答案 1 :(得分:2)

使用零宽度正向后视模式。

    String[] t = s.split("(?<=}),");

请参阅java.util.regex.Pattern