gpt4 book ai didi

java - 正则表达式提取字符串,为什么我的模式不起作用?

转载 作者:行者123 更新时间:2023-12-01 13:18:33 25 4
gpt4 key购买 nike

我有一个这种格式的长字符串(文件中的长单行):

"1":"Aname","2":"AnotherName","3":"Sempronio"

我想提取号码和姓名并将它们保存在 map 上。

我尝试过这个:

    FileReader fileReader = null;
BufferedReader br = null;

File file = new File("./SingleLineFileNames.txt");
try {
fileReader = new FileReader(file);
br = new BufferedReader(fileReader);

String line;
Pattern p = Pattern.compile("\"(\\d+)\":\"([\\w-.' ]+)\"");
Matcher matcher;
while((line = br.readLine()) != null) {
matcher = p.matcher(line);

String name;
int i = 1;
while((name = matcher.group(i)) != null){
// save in map
i++;
}

}

}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
br.close();
fileReader.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
return null;

结果是java.lang.IllegalStateException:找不到匹配项

这是迭代组的正确方法吗?

我哪里错了?

最佳答案

首先在 , 处拆分字符串 (String#split),然后在 : 处拆分每个结果数组元素以获取键和值。有了这样的输入字符串,我想知道使用正则表达式大锤打破这些简单坚果的开发人员是什么样的受虐狂。

关于java - 正则表达式提取字符串,为什么我的模式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248814/

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