我有一个Java字符串,看起来像这样;Java正则表达式分隔符和保留分隔符之间的字符串
(fname:jon)(lname:doe)(guaranteer: Sam (W) Willis)(age:35)(addr:1 Turnpike Plaza)(favcolor:blue)
而且我想将此字符串从分隔符(fname:jon)<here>(lname:doe)
中分开。
我试图通过拆分正则表达式\)\(
但它只是打破我的代码
arr = s.split("\\)\\(");
for (String a: arr) System.out.println(a);
输出
(fname:jon
lname:doe
guaranteer: Sam (W) Willis
age:35
addr:1 Turnpike Plaza
favcolor:blue)
我也看了一下这个问题:How to split a string, but also keep the delimiters?,但它并没有在我的情况,因为帮助,我想保持分隔符)(
并且均匀地分隔分隔符,即第一个括号应该是第一个结果,第二个结果是第二个。
,我用正则表达式是s.split("(?<=\\)\\()")
,它给了输出:
(fname:jon)(
lname:doe)(
guaranteer: Sam (W) Willis)(
age:35)(
addr:1 Turnpike Plaza)(
favcolor:blue)
这是我想要的输出:
(fname:jon)
(lname:doe)
(guaranteer: Sam (W) Willis)
(age:35)
(addr:1 Turnpike Plaza)
(favcolor:blue)
尝试')' –
@WiktorStribiżew我已经明确指出为什么回答没有帮助在我的情况。你能告诉我为什么这是重复的吗? – Cupid
概括所有这些情况的答案是http://stackoverflow.com/a/2848147/3832970。从底部的第三个是你的情况。 –