【发布时间】:2018-10-18 05:03:24
【问题描述】:
以下代码 sn-p 用于将字母数字字符串划分为数字和字符串的映射,该映射作为来自 RestAPI 的响应正文参数。
String alphaNumericStr = "1XXGTE_FUSION2XXBIR_STALIO3XXVTE_CORE";
String regex = "[^a-zA-Z0-9']+";
Matcher matcher = Pattern.compile(regex).matcher(alphaNumericStr);
Map<Integer, String> map = new HashMap<>();
while (matcher.find()) {
map.put(Integer.parseInt(matcher.group(1)), matcher.group(2));
}
System.out.println(map);
预期结果是
{1=XXGTE_FUSION, 2=XXBIR_STALIO, 3=XXVTE_CORE}
但我得到一张空地图。任何人都可以帮我解决这个问题。
【问题讨论】:
-
问题是您的正则表达式中没有组。
-
XXGTE_FUSION、XXBIR_STALIO等可以包含数字吗? -
@Wiktor 否。字符串使用数字分隔。
标签: java regex string pattern-matching