【发布时间】:2014-04-28 15:33:56
【问题描述】:
我有以下信息
String templateString = "I am %NAME% and I live in %PLACE%";
String inputString = "I am John Doe and I live in New York";
我需要编写一个函数,它将接收上述 2 个字符串并返回一个成对的 HashMap。
HashMap<String,String> parseInputFromTemplate(templateString, inputString) {
// Magic
return result;
}
结果会有
%NAME%(键),John Doe(值) %PLACE%(键),纽约(值)任何指针将不胜感激。
【问题讨论】:
-
这不是一个小问题。如果模板字符串中有合法的 % 怎么办?如果你能保证不会发生这种情况,这是 RegEx 中的一个练习。
-
我可以保证 % 永远不会成为字符串的一部分。我正在寻找一种使用 RegEx 实现它的方法
-
好吧,我不会为你编写整个正则表达式。您也可以按“%”拆分。结果数组中的每个其他字符串都是模板变量。其他的将是要在 inputString 中丢弃的静态字符串。
标签: java regex template-engine