2014-09-19 104 views
5

我有一個相當大的String,我需要分割所以我可以把它放到一個數組中。實際上,將會有一個分號,然後是Integer,然後是空格,這是我需要分割的地方。在整數後跟一個空格分開一個字符串

例如說,我有一個String

first aaa;0 second bbb;1 third ccc;2 

我需要,使之成爲分裂的:

first aaa;0 
second bbb;1 
third ccc;2 

我以爲我可以使用類似:

Pattern pattern = Pattern.compile(^([0-9]*\s"); 
myArray = pattern.split(string_to_split); 

我只是不明白正確的RegEx。

由於任何人考慮看看

而且,它應該被拆分將永遠是一個分號模式,其次是隻有一個數字,然後的空間。

回答

19

根據下面的正則表達式分割輸入的字符串。

(?<=;\\d)\\s 

代碼:

String s = "first aaa;0 second bbb;1 third ccc;2"; 
String[] tok = s.split("(?<=;\\d)\\s"); 
System.out.println(Arrays.toString(tok)); 

輸出:

[first aaa;0, second bbb;1, third ccc;2] 

說明:

  • (?<=;\d)正回顧後在這裏使用。它在;<number>之後設置匹配標記。也就是說,它聲明瞭空格之前的字符必須是分號和數字。
  • (?<=;\d)\s現在它匹配下面的空格字符。
  • 根據匹配的空間拆分輸入字符串將爲您提供所需的輸出。
相關問題