用于获取包含引号的String的正则表达式

时间:2017-03-02 14:40:28

标签: java regex

我正在使用regex来获取包含引号的字符串值。在下面的示例中,我想获取值汇总密钥为"这是"摘要"。目前我只得到"这是"作为以下程序的输出。我想要逃避所有双引号,它们介于第一个和最后一个双引号之间。

    String in = "summary = \"Here is \"summary\"";  

    Pattern p = Pattern.compile("'(.*?)'|\"(.*?)[^\\\"]+\"");
    Matcher m = p.matcher(in);

    while(m.find()) {
        System.out.println(m.group());
    }

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用这个:

/\\["']((?:[^"\\]|\\.)*)\\["']/

演示:https://regex101.com/r/033EKx/1

请记住:在尝试按"构建正则表达式时,\应更改为\\和其他特殊字符("'

rStr = "/\\\\[\"\']((?:[^\"\\\\]|\\\\.)*)\\\\[\"\']/" ;