一次替换多个子字符串

一次替换多个子字符串,第1张

一次替换多个子字符串

这是您的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
每个替换词。)



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

原文地址:https://54852.com/zaji/5488250.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存