Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在字符串中使用replaceAll时获取正则表达式异常_Java_Regex - Fatal编程技术网

Java 在字符串中使用replaceAll时获取正则表达式异常

Java 在字符串中使用replaceAll时获取正则表达式异常,java,regex,Java,Regex,我有一个字符串,在这个字符串中,我必须将某个文本替换为作为用户输入的值 String input = "Hello dear {{user.salutation}} {{user.name}}," 我需要将{{user.saltation}}替换为先生等等 我尝试在java中使用replaceAll方法,该方法接受正则表达式函数 input.replaceAll("{{user.salutation}}","Mr.") 然而,我不断得到一个例外 Exception in thread "ma

我有一个字符串,在这个字符串中,我必须将某个文本替换为作为用户输入的值

String input = "Hello dear {{user.salutation}} {{user.name}},"
我需要将
{{user.saltation}}
替换为
先生
等等

我尝试在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)
线程“main”java.util.regex.PatternSyntaxException中的异常:非法重复 {{user.saltation} 位于java.base/java.util.regex.Pattern.error(Pattern.java:1997) 位于java.base/java.util.regex.Pattern.closure(Pattern.java:3294) 位于java.base/java.util.regex.Pattern.sequence(Pattern.java:2183) 位于java.base/java.util.regex.Pattern.expr(Pattern.java:2038) 位于java.base/java.util.regex.Pattern.compile(Pattern.java:1760) 位于java.base/java.util.regex.Pattern.(Pattern.java:1409) 位于java.base/java.util.regex.Pattern.compile(Pattern.java:1065) 位于java.base/java.lang.String.replaceAll(String.java:2125) 谁能告诉我我的正则表达式模式有什么问题吗。提前感谢

变化

input.replaceAll("{{user.salutation}}","Mr.")

改变

input.replaceAll("{{user.salutation}}","Mr.")


replaceAll
希望得到regex,如果您想避开花括号,可以将代码替换为:

String newInput = input.replaceAll("\\{\\{user\\.salutation}}","Mr.");
您可以改为使用
replace
(与
replaceAll
相同,没有regex问题)


replaceAll
希望得到regex,如果您想避开花括号,可以将代码替换为:

String newInput = input.replaceAll("\\{\\{user\\.salutation}}","Mr.");
您可以改为使用
replace
(与
replaceAll
相同,没有regex问题)