Regex 查找字符串中的文本

Regex 查找字符串中的文本,regex,regex-group,Regex,Regex Group,我需要在JSON数据中找到双引号,这是数据本身的一部分 例如:{“Key”:“Value”、“Key1”、“Val”ue1} 现在需要检索Val“ue1”中的双引号,而不是其他双引号 任何关于如何实现这一点的想法?从双引号中提取数据的正则表达式应该是(?关于:\“([^(?:\”[,}])]*\“[^(?:\”[,}])*)\”[,}] 这个正则表达式在冒号后面跟一个空格和一个双引号之间查找文本,另一个双引号后面跟一个逗号或右括号。它们之间的文本必须由某物*、至少一个引号和某物*组成 *some

我需要在JSON数据中找到双引号,这是数据本身的一部分

例如:{“Key”:“Value”、“Key1”、“Val”ue1}

现在需要检索Val“ue1”中的双引号,而不是其他双引号


任何关于如何实现这一点的想法?

从双引号中提取数据的正则表达式应该是
(?关于
:\“([^(?:\”[,}])]*\“[^(?:\”[,}])*)\”[,}]

这个正则表达式在冒号后面跟一个空格和一个双引号之间查找文本,另一个双引号后面跟一个逗号或右括号。它们之间的文本必须由某物*、至少一个引号和某物*组成

*something表示任何不包含引号后跟逗号或右尖括号的内容(包括空字符串),因为这将结束值

应用于您的示例(更正为用冒号替换逗号),它返回
Val“ue1

String json = "{\"Key\": \"Value\", \"Key1\": \"Val\"ue1\"}";

Matcher m = Pattern.compile(": \"([^(?:\"[,}])]*\"[^(?:\"[,}])]*)\"[,}]").matcher(json);

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

你的JSON对我来说似乎是无效的。如果可以的话,要么避开这个难看的“错误”,要么使用一个引号。