在字符串中用双反斜杠替换单反斜杠
当尝试使用replaceAll将像“\something\”这样的字符串转换为“\”时某事”,开发人员经常遇到错误。使用 ReplaceAll("\", "\\") 方法的常见方法会导致异常“java.util.regex.PatternSyntaxException:索引 1 附近出现意外的内部错误”。出现这种情况是因为反斜杠 () 字符在字符串和正则表达式中都被视为转义字符。要解决此问题,请通过将正则表达式中的反斜杠加倍来转义:
string.replaceAll("\\\\", "\\\\\\\\");
然而,这里并不总是需要正则表达式。由于我们只想执行逐个字符的替换,因此 String#replace() 就足够了:
string.replace("\\", "\\\\");
请注意,如果字符串打算在 JavaScript 上下文中使用,则可能更适合使用 StringEscapeUtils#escapeEcmaScript() 来覆盖更广泛的字符。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3