难以在分隔符处拆分字符串并保留它

Nic*_*dey 0 java regex string split

我有一个成对读取的字符串,以逗号分隔.但是,我并不总是想用逗号分割,因为输入中并不总是有1个逗号.例如,字符串,

(http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b
,http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6,file:///tmp/foo/bar/p,d,f.pdf)
Run Code Online (Sandbox Code Playgroud)

全部读一行.对于这种情况,我只想在字符串中的,h和no处分开.基本上,在拆分后,字符串应该是:

http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b

http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6

file:///tmp/foo/bar/p,d,f.pdf
Run Code Online (Sandbox Code Playgroud)

在第一个字符串中维护逗号的顺序.(我将摆脱括号).我看过这个堆栈溢出问题,虽然有帮助,但是没有正确拆分这个字符串.这是Java.任何帮助表示赞赏.

Sac*_*wgi 5

您可以使用正则表达式进行拆分.请参阅下面的代码段.

String str = "(http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b,http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6)";
String[] strArr = str.split("(,(?=http))");
Run Code Online (Sandbox Code Playgroud)

您将拥有根据您的要求可能的所有值的数组.