我有一个字符串,我必须用我从用户那里收到的输入值替换某个文本。
String input = "Hello dear {{user.salutation}} {{user.name}},"
我需要用Mr.
替换{{user.salutation}}
等等。
我尝试在java中使用replaceAll方法,该方法采用正则表达式函数
input.replaceAll("{{user.salutation}}","Mr.")
但是,我不断收到例外
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition
{{user.salutation}}
at java.base/java.util.regex.Pattern.error(Pattern.java:1997)
at java.base/java.util.regex.Pattern.closure(Pattern.java:3294)
at java.base/java.util.regex.Pattern.sequence(Pattern.java:2183)
at java.base/java.util.regex.Pattern.expr(Pattern.java:2038)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1760)
at java.base/java.util.regex.Pattern.<init>(Pattern.java:1409)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1065)
at java.base/java.lang.String.replaceAll(String.java:2125)
任何人都可以让我知道我的正则表达式模式出了什么问题。提前致谢!!
更改
input.replaceAll("{{user.salutation}}","Mr.")
自
input.replaceAll("\{\{user.salutation\}\}","Mr.")
or
input.replaceAll("\{\{user.salutation}}","Mr.")
replaceAll
希望获得正则表达式,如果您想转义大括号,您可以将代码替换为:
String newInput = input.replaceAll("\{\{user\.salutation}}","Mr.");
您可以改用replace
(它与没有正则表达式问题的replaceAll
相同(
String newInput = input.replace("{{user.salutation}}", "Mr.");