2013-10-20 180 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

相关问题