如何在 Java 字符串中转义反斜杠'',同时忽略''用于转义标准字符的所有位置?



我想转义Java字符串中的反斜杠。我尝试使用以下代码-

public static String escapeString(String str)
{
return str.replace("\", "\\");
}

这就像一个魅力。但是,后来我注意到我也有一些场景,其中"\"字符故意用于转义一些标准字符,如""、"\r"、"\t"等。好吧,我不希望这些"\"字符被转义,因为那样它们会变成像"","\r","\t",这是无意的。波纹管的例子会更清楚——

I/P 字符串-

mdlhCw~pzOb@KV\Sd@c@CGK_DZiI|AuH\rdCiNrGi^xQ}HjDkFf@_IyTf@mKNm@H}C]

O/P 字符串-

mdlhCw~pzOb@KV\Sd@c@CGK_DZiI|AuH\tdCiNrGi^xQ}HjDkFf@_IyTf@mKNm@H}C]

所以,在这里我转义了"S"之前的"\",而不是"t"之前的"\"。 除了通过检查每种可能的情况进行蛮力之外,还有其他方法可以做到这一点吗?

使用 String.replaceAll 方法,该方法接受正则表达式作为查找要替换的字符串的输入。

放置一个匹配所有反斜杠的正则表达式,但旁边有列入黑名单的字符的正则表达式除外。

相关内容

最新更新