在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);
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,也没有添加转义反斜杠.
Tim*_*Tim 16
我想到了
String test = "select * from blah *asdf";
test = test.replaceAll("\\*", "\\\\*");
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)
Sea*_*oyd 11
你并不需要为这个正则表达式的任何功能,所以你应该使用非正则表达式版本与string.replace(的CharSequence,CharSequence中):
String test = "select * from blah *asdf";
test = test.replace("*", "\\*");
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)
对于那些在家里得分的人,并且因为理解答案可能对其他人有帮助...
String test = "select * from blah *asdf";
test = test.replaceAll("\\*", "\\\\*");
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)
因为必须转义特殊字符*才能使正则表达式满意.然而,\就是在Java字符串中的特殊字符,所以在构建Java这个表达式时,还必须躲避\,因此\\*.
在Java字符串中放置正则表达式时,这经常会导致双重转义.
| 归档时间: |
|
| 查看次数: |
21382 次 |
| 最近记录: |