首页 > 解决方案 > 用于解析由双引号分隔的简单句子单词的正则表达式

问题描述

我有一个看起来像这样的例句:

""Music"",""EDM / Electronic"",""organizer: Tiny Toons""

我想把这句话解析成记号:

["Music", "EDM / Electronic", "organizer: Tiny Toons"]

我的正则表达式 foo 非常有限,而且我面临一些时间压力。

想知道是否有人可以帮助我构建一个正则表达式(与 Java8 兼容——因为我正在使用 Clojure 应用正则表达式)来解析这些捕获组。

谢谢你,杰森。

标签: regexparsingsentence

解决方案


假设句子是整个字符串并且没有逗号或"要匹配,您可以使用

"[^,\"]+"

如果上述假设不正确,请举例说明可能的输入字符串以及您要匹配的部分中可能出现的字符的详细信息。

如何使用正则表达式的简单 java 示例:

String sentence = "\"\"Music\"\",\"\"EDM / Electronic\"\",\"\"organizer: Tiny Toons\"\"";
Matcher matcher = Pattern.compile("[^,\"]+").matcher(sentence);
List<String> matches = new ArrayList<String>();
while (matcher.find()) {
    matches.add(matcher.group());
}
System.out.println(matches);

推荐阅读