2013-07-16 104 views
-2

我今天第二次碰到一个我无法解决的正则表达式问题。这个我甚至不确定可以用正则表达式解决。我的输入字符串是:使用正则表达式以最小量的分隔符分割字符串

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"... 

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

+0

起初我以为我可以在“ - ”破折号字符分裂,但后来我意识到,这不会起作用,因为这是分开的数字和团队名称。所以后来我意识到我被卡在那里 –

+0

好吧,如果你在破折号上分割 - 特别是在“\\ s * \\ - \\ s *”'上,结果数组将会是“{”29“,”Arizona响尾蛇15“,”亚特兰大勇士1“,...}。你能拼凑出你想要的阵列吗? – 2013-07-16 22:33:55

+1

@JackManey:这是一个坏主意。 – jlordo

回答

3

您可以使用正前瞻:

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

这甚至将工作当有球队名称的数字。

+0

非常感谢帮帮我!!! –

0

此正则表达式将匹配你需要什么:

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

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

相关问题