替换来自javascript的字符

时间:2014-09-17 13:43:55

标签: java regex string flickr replaceall

我正在制作一个从flickr集中提取所有图片的程序。我在代码中发现了一个包含每个图片链接的大字符串,问题是:

链接具有下一种格式:

https:\/\/c2.staticflickr.com\/4\/3925\/14562233192_3fe2b8fe1b_s.jpg

但是我无法删除'\'字符,尽管使用了“\”转义序列。

我的替换代码如下,ret包含很多以'\ n'分隔的链接:

ret =ret.replaceAll("\\", "");

世界上我忘记了什么?

我的错误stackTrace是这样的:

 Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unexpected internal      error near index 1
 \
 ^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)

2 个答案:

答案 0 :(得分:3)

使用4个斜杠而不是2.像这样 - ret =ret.replaceAll("\\\\", "")。你需要1个用于java,一个用于正则表达式引擎,两个用于解析字面意思(删除特殊含义)。

答案 1 :(得分:1)

\是正则表达式中的特殊字符,用于转义其他特殊字符。因此,要匹配\,您的正则表达式必须为\\。由于您需要再次转义反斜杠(这次是Java字符串),您需要调用ret =ret.replaceAll("\\\\", "");