如何更换所有星号?

时间:2010-10-05 00:07:07

标签: java regex

在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);
}

这不起作用,也没有添加转义反斜杠。

3 个答案:

答案 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字符串中放置正则表达式时,这经常会导致双重转义。