2013-12-10 30 views
2

我想用正則表達式java分割字符串。
例如:用java中的正則表達式分割

String: (5,4,a) 

我要在以下拆分兩個String:

5 
4,a 

如果字符是逗號後的數字就分裂
如果字符是逗號後的信不拆

我使用

[-|,]\\s*[^\\w] 

但無權

+1

任何企圖從你身邊? –

回答

2

您可以使用正向前查找 - 告訴正則表達式引擎的請求某個字符必須是有,但不應該被消耗掉比賽的一部分:

"[()]|[,-](?=\\d)" 

應該做這個工作(demo on ideone)。以上,(?=\\d)的意思是「只有後面跟着一個數字」,而不將該數字作爲匹配的一部分。

3

通常情況下最好不要提出一個複雜的「完成」正則表達式。只需用逗號分割,然後查看最後一個元素是否爲數字,如果不是,則仍然可以再次連接第二個和第三個字段。

+0

我同意,但在這種情況下,正則表達式不會那麼複雜。 – sp00m

+0

@ sp00m是的,但顯然複雜到足以在SO上開始一個問題。當談到正則表達式時,我主張極端的簡單性,因爲下週的機會很高,你根本不理解你從那個人那裏得到的正則表達式。 – Ingo

1

嘗試了這一點:

String str = "5,4,c"; 
    // Just split the string into two parts 
    String[] split = str.split(",", 2); 

    System.out.println(split[0]); 
    System.out.println(split[1]);