如何在每个逗号后用逗号分隔值(CSV)字符串匹配单个空格。
让我们说:
String = 'abc, def, ghijk, l, mn, opqr, stu';
匹配上述字符串中完整单词的正则表达式是什么?
编辑: 假设我想匹配给定字符串中的ghijk。
答案 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(", *");