似乎这应该工作,但是不行。我试图在传递给replaceAll()方法的替换String上调用replace()方法。
例如,我尝试使用以下代码消除双引号内的任何逗号:
String string = "\"Thu, Sep 6, 2018 10:00 AM\"";
System.out.println(string.replaceAll("(\"[^\"]+\")", "$1".replace(",", "")));
结果是相同的字符串:我希望"Thu, Sep 6, 2018 10:00 AM"
时是"Thu Sep 6 2018 10:00 AM"
我查看了String.replaceAll()和Matcher.replaceAll()的文档,但我仍然不知道为什么这行不通。谁能帮我理解?
让我强调,我很想知道为什么这行不通-我对解决方案不感兴趣,我已经找到了替代方案。谢谢。
答案 0 :(得分:1)
您正在对“ $ 1”调用.replace,而不是replaceAll的结果。合上replaceAll调用的括号,然后在其上调用.replace方法。
尝试
System.out.println(string.replaceAll("(\"[^\"]+\")", "$1").replace(",", ""))
答案 1 :(得分:0)
只需更改右括号的位置即可使用:
System.out.println(string.replaceAll("(\"[^\"]+\")", "$1").replace(",", ""))