我正在使用regex来获取包含引号的字符串值。在下面的示例中,我想获取值汇总密钥为"这是"摘要"。目前我只得到"这是"作为以下程序的输出。我想要逃避所有双引号,它们介于第一个和最后一个双引号之间。
String in = "summary = \"Here is \"summary\"";
Pattern p = Pattern.compile("'(.*?)'|\"(.*?)[^\\\"]+\"");
Matcher m = p.matcher(in);
while(m.find()) {
System.out.println(m.group());
}
感谢您的帮助。
答案 0 :(得分:1)
使用这个:
/\\["']((?:[^"\\]|\\.)*)\\["']/
演示:https://regex101.com/r/033EKx/1
请记住:在尝试按"
构建正则表达式时,\
应更改为\\
和其他特殊字符("
和'
)
rStr = "/\\\\[\"\']((?:[^\"\\\\]|\\\\.)*)\\\\[\"\']/" ;