gpt4 book ai didi

java - 解析特定数据集的正则表达式

转载 作者:行者123 更新时间:2023-12-02 03:37:01 26 4
gpt4 key购买 nike

我正在使用java并解析具有可变长度数据的数据字符串,如下所示,

kv {
key "prefix"
str_value "prefix1"
}
kv {
key "init"
int_value 1
}
kv {
key "init"
}

我们可以看到最后一个 kv 标签缺少一个值字段,但仍然有效。想知道我应该使用什么正则表达式来检索 kv {} 标记之间的任何数据,如下所示。

键“前缀”str_value“前缀1”

键“init”int_value 1

键“init”

这是我用来获取 kv 分隔符的代码。

scan = new Scanner(new File(this.getFileName())).useDelimiter(".*kv\\s*\\{\\s*[^}].*+");
System.out.println(scan.next());

最佳答案

像这样的模式应该可以解决问题:

kv\s*\{\s*key\s+"([^"]*)"\s*(str_value\s+"([^"]*)"|int_value\s+(\d+))?\s*\}

Demo

您可以找到所有匹配项并读取每个匹配项的第一组、第三组和第四组的值,以便检索键/值对。

但是,如果您只想捕获大括号之间的所有内容,无论它是什么,那么您可以做一些更简单的事情:

kv\s*\{([^}]*)}

然后读取每场比赛第一组的值。

关于java - 解析特定数据集的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335635/

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