如何在Java中用/替换\?

时间:2010-12-28 06:27:11

标签: java regex

我尝试使用以下正则表达式,但它没有用。

  

myString.replaceAll(“\”,“/”);

例外:

  

java.util.regex.PatternSyntaxException:   索引1附近出现意外的内部错误   \ ^在   java.util.regex.Pattern.error(未知   来源)at   java.util.regex.Pattern.compile(未知   来源)at   java.util.regex.Pattern中。(未知   来源)at   java.util.regex.Pattern.compile(未知   来源)at   java.lang.String.replaceAll(未知   源)

2 个答案:

答案 0 :(得分:7)

您的代码甚至不应该编译。

"\"转义",以便字符串继续。写String h = "\"hello\"";使字符串h包含"hello"

如果我们更改然后将其更改为"\\"(逃避反斜杠),我们会遇到另一个问题。然后,正则表达式尝试转义 next 字符。例如,写"\\d+"是一个有效的正则表达式(匹配数字)。


在你的情况下,你根本不需要正则表达式。只需使用字符串的replace(char, char)方法,它就会替换所有字符。

myString.replace('\\', '/');

顺便说一下,如果要替换路径,则应该查看File.separator以获取系统路径分隔符

答案 1 :(得分:3)

有时你需要4个斜杠,因为反斜杠也是正则表达式的转义字符。试试

myString.replaceAll("\\\\", "/");