使用正则表达式使用最少量的分隔符拆分字符串

时间:2013-07-16 22:27:58

标签: java regex

我今天第二次遇到正则表达式问题我无法解决。我甚至不确定的这个可以用正则表达式解决。我的输入字符串是:

29 - Arizona Diamondbacks 15 - Atlanta Braves 1 - Baltimore Oriole 2 - Boston Red Sox 16 - Chicago Cubs 4 - Chicago White Sox

我需要将这些中的每一个拆分为Java中的数组,并且我希望输出返回:

"29 - Arizona Diamondbacks" "15 - Atlanta Braves" "1 - Baltimore Oriole"...

数组中每个自己的元素。任何帮助都会很棒。提前谢谢!

2 个答案:

答案 0 :(得分:3)

你可以使用积极的前瞻:

String[] arr = str.split("\\s(?=\\d+ -)");

当团队名称中有数字时,这甚至会起作用。

答案 1 :(得分:0)

这个正则表达式符合你的需要:

(\d+ - \D+)( |$)

每场比赛的第1组将拥有您想要的值。