2016-01-28 121 views
1

我有兩個人之間的分數字符串。我是從拉動這些分數數據庫會將分數之間的破折號...所以通常將比分看起來是這樣的:匹配正則表達式不是以字符串開始?

2-3 

我想這兩個分數分成Java中的一個String[]

match.get("scores").toString().split("-", 1) 

的問題是,如果分數是負會發生什麼:

-2--3 

我需要通過它發現第一個破折號現在要做的分割是不是在第一個字符串。

我該如何更改.split(RegEx, 1)以便我可以將短劃線與第一個字符相匹配?

+6

不是一個答案,但這是一個典型的違反正確的數據庫設計。分數應該分成兩列。如果您有修復架構的選項,請執行此操作。 –

+0

我同意...但它不是我的數據庫。它的Challonge。 –

回答

3

您可以分割使用的情況:

.split("(?<=\\d)-"); 

(?<=)爲正向後看。只需google positive-lookbehind regex,你應該找到很多關於它的信息。

+2

只是添加一些解釋,這個正則表達式的意思是:「只有在它有數字(並且不要將該數字作爲分隔符)時才分割'-'」。這部分正則表達式(?<= ...)'被稱爲後退,我們可以在這裏看到更多關於它的信息:http://www.regular-expressions.info/lookaround.html#lookbehind – Pshemo

+0

這個工作正常好人!謝謝... –

+0

不客氣!很高興我能幫上忙! – brso05

相關問題