gpt4 book ai didi

java - java中使用模式匹配提取数据

转载 作者:行者123 更新时间:2023-12-02 12:51:42 24 4
gpt4 key购买 nike

我在 Java 中需要使用 Pattern.compile() 从大字符串中提取数据。

输入字符串:

[{"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"},{"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"}]

输出:2 串一组

first :  {"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"}
second : {"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"}

我正在尝试下面的代码:

     ArrayList<String> token_data = new ArrayList<String>();

String myString = "[{"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"},{"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"}]"
System.out.println(myString);
Pattern p1 = Pattern.compile("\"([^\"]+)\"");
Matcher m = p1.matcher(myString);

while(m.find())
{

System.out.println(m.group(1));
//m.group(1);
token_data.add(m.group(1));
}

最佳答案

如果我理解正确的话,这里是正则表达式:{(.*)}。请注意,您需要将其标记为非贪婪。

正则表达式演示:https://regex101.com/r/x6ZX56/2

结果:

1

完全匹配:{"KEY1":"VALUE1","KEY2":"VALUE2","KEY3":"VALUE3","KEY4":"VALUE4"}

第 1 组:“KEY1”:“VALUE1”、“KEY2”:“VALUE2”、“KEY3”:“VALUE3”、“KEY4”:“VALUE4”

2

完全匹配:{"KEY1":"VALUE5","KEY2":"VALUE6","KEY3":"VALUE7","KEY4":"VALUE8"}

第 1 组:“KEY1”:“VALUE5”、“KEY2”:“VALUE6”、“KEY3”:“VALUE7”、“KEY4”:“VALUE8”

Java 示例:

    String input = "[{\"KEY1\" :\"VALUE1\",\"KEY2\" :\"VALUE2\",\"KEY3\" :\"VALUE3\",\"KEY4\" :\"VALUE4\"},{\"KEY1\" :\"VALUE5\",\"KEY2\" :\"VALUE6\",\"KEY3\" :\"VALUE7\",\"KEY4\" :\"VALUE8\"}]";

Pattern pattern = Pattern.compile("\\{(.*?)}");

Matcher m = pattern.matcher(input);

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

请注意,我对输入字符串使用了转义字符。

关于java - java中使用模式匹配提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com