在Java中,我想用*
替换所有\*
个字符。
实施例:
文字:select * from blah
结果:select \\* from blah
public static void main(String[] args) {
String test = "select * from blah";
test = test.replaceAll("*", "\\*");
System.out.println(test);
}
这不起作用,也没有添加转义反斜杠。
答案 0 :(得分:15)
我想通了
String test = "select * from blah *asdf";
test = test.replaceAll("\\*", "\\\\*");
System.out.println(test);
答案 1 :(得分:11)
您不需要任何正则表达式功能,因此您应该使用非正则表达式版本String.replace(CharSequence, CharSequence):
String test = "select * from blah *asdf";
test = test.replace("*", "\\*");
System.out.println(test);
答案 2 :(得分:6)
对于那些在家里得分的人,因为理解答案可能对其他人有帮助......
String test = "select * from blah *asdf";
test = test.replaceAll("\\*", "\\\\*");
System.out.println(test);
有效,因为您必须转义特殊字符*
才能使正则表达式满意。但是,\
是Java字符串中的特殊字符,因此在使用Java构建此正则表达式时,您还必须转义\
,因此\\*
。
在Java字符串中放置正则表达式时,这经常会导致双重转义。