如何用Java/Kotlin正则去除Google Books API返回URL中斜杠前的反斜杠
解决方案
你遇到的是Google Books API返回结果过度转义斜杠的问题,以下是Java/Kotlin下的两种可行正则方案:
方案1:全局删除所有反斜杠(最简便,适配你当前场景)
该场景下异常URL中所有反斜杠都是多余转义字符,直接全部删除即可得到正常URL:
- Kotlin 实现
val wrongUrl = "http:/\\/books.google.com\\/books\\/content?id=0DwKEBD5ZBUC&printsec=frontcover&img=1&zoom=5&source=gbs_api" val correctUrl = wrongUrl.replace("\\", "")
- Java 实现
String wrongUrl = "http:/\\/books.google.com\\/books\\/content?id=0DwKEBD5ZBUC&printsec=frontcover&img=1&zoom=5&source=gbs_api"; // Java正则中反斜杠需要四重转义 String correctUrl = wrongUrl.replaceAll("\\\\", "");
方案2:精准匹配\/组合替换(适配更通用场景)
如果担心其他场景下反斜杠有其他用途,可以只匹配反斜杠加斜杠的组合,替换为单个斜杠:
- Kotlin 实现
val correctUrl = wrongUrl.replace("""\\/""".toRegex(), "/")
- Java 实现
String correctUrl = wrongUrl.replaceAll("\\\\/", "/");
两种方案处理后,你给出的示例异常URL都会转为正常格式:http://books.google.com/books/content?id=0DwKEBD5ZBUC&printsec=frontcover&img=1&zoom=5&source=gbs_api
内容的提问来源于stack exchange,提问作者MakeTheErrorDie
相关产品推荐
相关产品推荐

