将key = value的字符串解析为Map

将key = value的字符串解析为Map,第1张

将key = value的字符串解析为Map

您可以使用

(w+)=(.*?)(?=,w+=|$)

请参阅regex演示。

细节

  • (w+)
    -第1组:一个或多个单词字符
  • =
    -等号
  • (.*?)
    -第2组:除换行符以外的任何零个或多个字符,请尽可能少
  • (?=,w+=|$)
    -正向超前查询,需要一个
    ,
    ,然后是1+个单词字符,然后是
    =
    ,或者紧接当前位置右侧的字符串结尾。

Java代码:

public static Map<String, String> getAttributes(String attributes) {    Map<String, String> attr = new HashMap<>();    Matcher m = Pattern.compile("(\w+)=(.*?)(?=,\w+=|$)").matcher(attributes);    while (m.find()) {        attr.put(m.group(1), m.group(2));    }    return attr;}

Java测试:

String s = "Overtime=true,TransportCosts=1= 1,two, three,Billable=7200";Map<String,String> map = getAttributes(s);for (Map.Entry entry : map.entrySet()) {    System.out.println(entry.getKey() + "=" + entry.getValue());}

结果:

Overtime=trueBillable=7200TransportCosts=1= 1,two, three


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存