RegEx用逗号分隔一个字符串,用空格忽略逗号

时间:2013-10-20 16:51:45

标签: java regex split

我需要编写一个正则表达式来用逗号分隔一个字符串,而不是用空格逗号。我写了一个,但它没有用完。

E.g:

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

预期结果:

  1. CONGO,
  2. 的民主共和国
  3. 伊朗伊斯兰共和国
  4. 朝鲜民主主义人民共和国
  5. 尼泊尔
  6. 新西兰
  7. SRI LANKA
  8. 我的代码:

    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);
            }
        }
    }
    

    输出:

    1. CONGO,
    2. 的民主共和国
    3. RAN,ISLAMIC REPUBLIC OF
    4. OREA,民主人士共和国
    5. EPAL
    6. EW ZEALAND
    7. RI LANKA

2 个答案:

答案 0 :(得分:3)

,(?!\s)

说明:

匹配任何没有空格的逗号。

在此处查看此行动:http://regex101.com/r/gW3hJ8

答案 1 :(得分:2)

使用zero width lookbehind and lookahead

testString.split("(?<! ),(?! )")