我制作的方法需要用"替换所有" ^"" ^"。但我使用.replaceAll()
,并将正则表达式作为参数,而插入符号(^
)表示不或除了< / em>在正则表达式中。它甚至都没有逃脱角色。
那我该怎么办?
String a = "8^2";
public static String magicMethod(String a) {
return a.replaceAll("^", " ^ "); // makes everything compile funny
}
答案 0 :(得分:3)
您可以使用反斜杠(\
)转义所有特殊的正则表达式字符。由于反斜杠也是一个Java String文字转义字符,因此在写为Java字符串时必须加倍。
a.replaceAll("\\^", " ^ ")
如果您想使用replaceAll()
并且搜索字符串和/或替换值是纯文本,您可以自动为您转义字符串。
a.replaceAll(Pattern.quote("^"), Matcher.quoteReplacement(" ^ "))
这通常仅在搜索字符串和/或替换值是动态时使用。在常量时,如在您的情况下,使用反斜杠进行转义。
答案 1 :(得分:2)
您需要unescape ^
return a.replaceAll("\\^", " ^ "); // makes everything compile funny
正则表达式中的^
表示字符串