2013-10-20 219 views
0

我需要編寫一個正則表達式來用逗號分隔字符串,但不能用逗號分隔空格。我寫了一個,但沒有成功。正則表達式用逗號分隔字符串,忽略空格逗號

例如:

String testString = "CONGO, THE DEMOCRATIC REPUBLIC OF THE,IRAN, ISLAMIC REPUBLIC OF,KOREA, DEMOCRATIC PEOPLE S REPUBLIC OF,NEPAL,NEW ZEALAND,SRI LANKA"; 

預期結果:

  1. 剛果民主THE
  2. 伊朗,作者
  3. KOREA伊斯蘭共和國,人民民主S的
  4. 共和國NEPAL
  5. NEW ZEALAND
  6. 斯里蘭卡

我的代碼:

public class TestRegEx { 
    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     String testString = "CONGO, THE DEMOCRATIC REPUBLIC OF THE,IRAN, ISLAMIC REPUBLIC OF,KOREA, DEMOCRATIC PEOPLE S REPUBLIC OF,NEPAL,NEW ZEALAND,SRI LANKA"; 
     String[] output = testString.split("([,][^(,\\s)])+"); 
     for (String country : output) { 
      System.out.println(country); 
     } 
    } 
} 

OUTPUT:

  1. 剛果民主THE
  2. RAN共和國,作者
  3. OREA伊斯蘭共和國,民主人民共和國
  4. EPAL
  5. EW ZEALAND
  6. RI斯里蘭卡

回答

3
,(?!\s) 

說明:

匹配後面沒有空格的任何逗號。

看到它在這裏的行動:http://regex101.com/r/gW3hJ8

+1

測試多個空格是沒用的,因爲一個就足夠了。你也不需要捕獲括號。 –

+0

你在兩個賬戶上都是對的。編輯我的答案。感謝您指出。 – gry

相關問題