java - 将引号中的所有文本放入 ArrayList

标签 java regex parsing arraylist

我正在寻找一种简单的方法来获取字符串并将引号中的所有值放入 ArrayList

例如

The "car" was "faster" than the "other"

我想要一个包含的 ArrayList

car, faster, other

我想我可能需要使用正则表达式,但我想知道是否还有另一种更简单的方法。

最佳答案

使用正则表达式,实际上非常简单。注意:此解决方案假设不能嵌套引号:

private static final Pattern QUOTED = Pattern.compile("\"([^\"]+)\"");

// ...
public List<String> getQuotedWords(final String input)
{
    // Note: Java 7 type inference used; in Java 6, use new ArrayList<String>()
    final List<String> ret = new ArrayList<>();
    final Matcher m = QUOTED.matcher(input);
    while (m.find())
        ret.add(m.group(1));
    return ret;
}

正则表达式是:

"           # find a quote, followed by
([^"]+)     # one or more characters not being a quote, captured, followed by
"           # a quote

当然,由于这是在 Java 字符串中,因此需要用引号引起来...因此该正则表达式的 Java 字符串: "\"([^\"]+)\"" .

关于java - 将引号中的所有文本放入 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17759354/

相关文章:

Java-获取父进程

regex - 语言环境何时会影响 R 的正则表达式?

Erlang 和 Antlr

java - 如何将 android 项目作为库导入而不是将其编译为 apk (Android studio 1.0)

java - Netbeans并在EJB项目中调用Enterprise Bean

java - 如何使用 webflux 提供静态资源但支持 CACHE

java - Java 中的递归下降解析器

python - 在 Python 中仅从字符串中提取字符

Python:正则表达式从单词中剥离模式并打印其余部分

html - 是否有一个简单的解决方案可以快速解析 html 以将各个元素放入它们自己的变量中?