从输入字符串中提取命名数据时,使用 Matcher.group(String groupname) http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html
在下面的代码中, receivedData 是一个包含组名称的哈希图。我必须遍历它以获取每个名称,然后调用 group(name)。hashmap 必须单独维护,并且可能会输入错误的名称或与正则表达式中的名称不同步,因为它们的数量很大。
String patternOfData = "On (day) I ate (mealName) at (restaurant) where they had a deal (entree) for only (price)";
编译 Pattern 后,
Pattern dataExtractionPattern = Pattern.compile(patternOfData);
Matcher matcher = dataExtractionPattern.matcher(receivedDataString);
boolean b = matcher.matches();
if (!b) {
return false;
}
for (String key : receivedData.keySet()) {
String dataValue;
dataValue = matcher.group(key);
receivedData.put(key, dataValue);
}
return true;
如果我们同时返回 name 和 value 会更好吗?像 Map.entry group();
还是有其他方法可以做到这一点?