
这是您的Python建议如何转换为Java的方式:
Map<String, String> replacements = new HashMap<String, String>() {{ put("substr1", "repl1"); put("substr2", "repl2"); put("substr3", "repl3");}};String input = "lorem substr1 ipsum substr2 dolor substr3 amet";// create the pattern joining the keys with '|'String regexp = "substr1|substr2|substr3";StringBuffer sb = new StringBuffer();Pattern p = Pattern.compile(regexp);Matcher m = p.matcher(input);while (m.find()) m.appendReplacement(sb, replacements.get(m.group()));m.appendTail(sb);System.out.println(sb.toString()); // lorem repl1 ipsum repl2 dolor repl3 amet这种方法可以 同时 (即“一次”)进行替换。即,如果您碰巧有
"a" -> "b""b" -> "c"
那么这种方法会给出
"a b" -> "b c"与答案相反的答案,提示您应该将多个呼叫链接到
replace或
replaceAll会给出答案
"cc"。
(如果您一般化此方法以编程方式创建正则表达式,请确保您
Pattern.quote每个单独的搜索词和
Matcher.quoteReplacement每个替换词。)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)