2013-07-16 100 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組將有你想要的值。

相關問題