作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是正则表达式的初学者。
我有以下字符串:
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:一个或多个非空白字符 关于java - 如何在java中使用正则表达式从下面的字符串中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50681760/
我是一名优秀的程序员,十分优秀!