gpt4 book ai didi

java - 如何在java中使用正则表达式从下面的字符串中获取值

转载 作者:行者123 更新时间:2023-11-30 02:08:52 25 4
gpt4 key购买 nike

我是正则表达式的初学者。

我有以下字符串:

Hi Welcome to my site. #binid:BIN-4 #lat:23.025243 #long:72.5980293 #nottype:assign

输出Map:获取包含所有键值的Map,如下所示:

bindid - BIN-4(键=bindid,值=BIN-4)

纬度 - 23.025243

长 - 72.5980293

nottype - 分配

最佳答案

你可能会发现#,捕获第一组中后面的1+个单词字符,匹配:,然后捕获1+非空白字符到第二组中:

String str = "Hi Welcome to my site. #binid:BIN-4 #lat:23.025243 #long:72.5980293 #nottype:assign";
Map<String, String> res = new HashMap<String, String>();
Pattern p = Pattern.compile("#(\\w+):(\\S+)");
Matcher m = p.matcher(str);
while(m.find()) {
res.put(m.group(1),m.group(2));
System.out.println(m.group(1) + " - " + m.group(2)); // Demo output
}

请参阅Java demo .

输出:

binid - BIN-4
lat - 23.025243
long - 72.5980293
nottype - assign

图案详细信息:

  • # - # 符号
  • (\\w+) - 捕获组 1:一个或多个单词字符
  • : - 冒号
  • (\\S+)- 捕获组 2:一个或多个非空白字符

Regex demo

关于java - 如何在java中使用正则表达式从下面的字符串中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50681760/

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