java如何打印$or\\about regex文件
你能解释一下为什么3
和4
会出现错误吗
在第1和第2种情况下,我得出结论,转义语法需要两个\
字符,比如java中的\\
但是在{
特别是在4
的情况下,更奇怪的是,当我把\\\\
放进去时,它就工作了
str = "$12$ \\-\\ $25$";
System.out.println(str.replaceAll("\\$", "")); //1 : 12 \-\ 25 (i get how this works)
System.out.println(str.replaceAll("^\\$", "")); //2 : 12$ \-\ $25$ (i get how this works)
System.out.println(str.replaceAll("\\$$", str)); //error 3 want to print : $12$ \-\ $25
System.out.println(str.replaceAll("\\\", "")); // error 4 want to print : $12$ - $25$
# 1 楼答案
案例3的问题似乎是替换字符串(第二个参数):它应该是一个空字符串。下面的代码打印期望的答案
$12$ \-\ $25
案例4在@Oblivion Creations的回答中得到了解决:您缺少一个
\
。下面的代码打印期望的答案$12$ - $25$
# 2 楼答案
关于案例4,您实际上需要另一个
\
原因是java将
\
视为一个特殊字符,因此需要\\
来获取字符串中的单个\
。但是,regex也使用\
作为特殊字符,需要\\
检查单个\
,因此需要转义两次