正则表达式匹配CSV中的单词

时间:2014-06-18 06:35:12

标签: java regex

如何在每个逗号后用逗号分隔值(CSV)字符串匹配单个空格。

让我们说:

String = 'abc, def, ghijk, l, mn, opqr, stu';

匹配上述字符串中完整单词的正则表达式是什么?

编辑: 假设我想匹配给定字符串中的ghijk。

4 个答案:

答案 0 :(得分:3)

要匹配所有单词后跟逗号和完全一个空格:

\b\w+(?=$|,[ ](?![ ]))

请参阅demo

检索匹配项:

Pattern regex = Pattern.compile("\\b\\w+(?=$|,[ ](?![ ]))");
Matcher regexMatcher = regex.matcher(your_original_string);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
} 

答案 1 :(得分:2)

使用模式:(\S*?)(?=,)表示:任何不是空白的内容(延迟评估),后面跟一个逗号:

String aaa = "abc, def, ghijk, l, mn, opqr, stu";
Pattern pattern = Pattern.compile("(\\S*)(?=,)");
Matcher matcher = pattern.matcher(aaa);
while (matcher.find()) {
    System.out.println(matcher.group());
}

<强>输出

abc
def
ghijk
l
mn
opqr

答案 2 :(得分:0)

另一个REGEX .. :)

 public static void main(String[] args) {
            String s = "abc, def, ghijk, l, mn, opqr, stu";
            Pattern p = Pattern.compile("(\\w+)(?=,\\s+?)");
            Matcher m = p.matcher(s);
            // m.find();
            // System.out.println(m.groupCount());
            while (m.find()) {
                System.out.println(m.group());
            }

        }
O/P :
abc
def
ghijk
l
mn
opqr

答案 3 :(得分:0)

一个有根据的猜测,因为你的问题不清楚:

String[] words = csv.split(", *");