2015-03-13 24 views
-2

我想要分割的字符串的前面:「value.value2.key:somethink.two」 ,我想在數組元素:分割字符串,它是在另一個字符

  1. 「值「
  2. 」值2「
  3. 」鍵:somethink.two「

所以我需要的正則表達式它。字符前分割爲"\\."":" 感謝您的幫助。

+0

那你試試?爲什麼失敗?你嘗試了哪些其他用例,哪些失敗了?爲什麼你需要正則表達式?你的代碼在哪裏?當你調試你的代碼時發生了什麼? – Kon 2015-03-13 14:25:32

回答

4

使用積極的前瞻斷言。

String s = "value.value2.key: somethink.two"; 
String parts[] = s.split("\\.(?=.*?:)"); 
System.out.println(Arrays.toString(parts)); 

(?=...)被稱爲正向超前斷言。 (?=.*?:)肯定前瞻斷言匹配後必須跟着.*?,零個或多個字符和一個冒號符號。因此它匹配冒號前的所有點,但不匹配冒號後的點,因爲最後一個點後面沒有冒號。

輸出:

[value, value2, key: somethink.two] 
+0

從我也是upvote。有用。也許這位下來的選民是這樣做的,因爲嫉妒。 :) – muasif80 2015-03-13 14:29:28

+0

非常感謝。你只知道該怎麼寫?我有問題「(?=。*?:)」 – 2015-03-13 14:31:43

+0

什麼問題? – 2015-03-13 14:33:59