Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何编写正则表达式从字符串中提取模式_Java_Regex_Json - Fatal编程技术网

Java 如何编写正则表达式从字符串中提取模式

Java 如何编写正则表达式从字符串中提取模式,java,regex,json,Java,Regex,Json,我有一个JSON字符串,我想提取我需要关心的信息。我想要的是从JSON字符串中提取键'name'的值,可能有多个'name'条目 e、 g JSON字符串是: {"key1":"value1","key2":"value2","key3":"value3","name":"allen","detail":{"detailkey1":"detailvalue2","name":"john","detailkey2":"detailvalue2"}} 我需要从这个JSON字符串中提取'allen'

我有一个JSON字符串,我想提取我需要关心的信息。我想要的是从JSON字符串中提取键'name'的值,可能有多个'name'条目

e、 g JSON字符串是:

{"key1":"value1","key2":"value2","key3":"value3","name":"allen","detail":{"detailkey1":"detailvalue2","name":"john","detailkey2":"detailvalue2"}}
我需要从这个JSON字符串中提取'allen'和'john'

我不熟悉regex,希望有人能帮我

如果您能用java给出示例代码,那就太好了

谢谢

更新:谢谢大家的回复,我只是自己尝试了一下,其实很简单。把我的代码复制到下面

final String mydata = "{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\",\"name\":\"allen\",\"detail\":{\"detailkey1\":\"detailvalue2\",\"name\":\"john\",\"detailkey2\":\"detailvalue2\"}}";

    final Pattern pattern = Pattern.compile("\"name\":\"(.*?)\"");
    final Matcher matcher = pattern.matcher(mydata);
    while (matcher.find()) {
        System.out.println(matcher.group(1));
    }

我建议使用任何JSON解析器来解析它。下面是如何使用Java解析器来实现这一点

要支持多个名称,您需要一个嵌入式JSON数组,而不是重复密钥

JSONObject jsonObj = new JSONObject("{\"name\": [\"Mike Ross\", \"Rachel Zane\"]}");
System.out.println(jsonObj.getJSONArray("name").getString(1)); // Rachel Zane

尝试一下,并展示你的代码。找到一个JSON库并保存你的理智我自己试试,发现它很简单^ ^@lorcel是的,它很简单。如果您以后觉得需要将JSON映射到Java对象,请查看。如果有帮助的话,请不要忘记。
JSONObject jsonObj = new JSONObject("{\"name\": [\"Mike Ross\", \"Rachel Zane\"]}");
System.out.println(jsonObj.getJSONArray("name").getString(1)); // Rachel Zane