Regex 查找字符串中的文本
我需要在JSON数据中找到双引号,这是数据本身的一部分 例如:{“Key”:“Value”、“Key1”、“Val”ue1} 现在需要检索Val“ue1”中的双引号,而不是其他双引号Regex 查找字符串中的文本,regex,regex-group,Regex,Regex Group,我需要在JSON数据中找到双引号,这是数据本身的一部分 例如:{“Key”:“Value”、“Key1”、“Val”ue1} 现在需要检索Val“ue1”中的双引号,而不是其他双引号 任何关于如何实现这一点的想法?从双引号中提取数据的正则表达式应该是(?关于:\“([^(?:\”[,}])]*\“[^(?:\”[,}])*)\”[,}] 这个正则表达式在冒号后面跟一个空格和一个双引号之间查找文本,另一个双引号后面跟一个逗号或右括号。它们之间的文本必须由某物*、至少一个引号和某物*组成 *some
任何关于如何实现这一点的想法?从双引号中提取数据的正则表达式应该是
(?关于:\“([^(?:\”[,}])]*\“[^(?:\”[,}])*)\”[,}]
这个正则表达式在冒号后面跟一个空格和一个双引号之间查找文本,另一个双引号后面跟一个逗号或右括号。它们之间的文本必须由某物*、至少一个引号和某物*组成
*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对我来说似乎是无效的。如果可以的话,要么避开这个难看的“错误”,要么使用一个引号。