Substituindo barras invertidas simples por barras invertidas duplas em strings
Ao tentar usar replaceAll para converter uma string como "\something\" em "\ alguma coisa\", os desenvolvedores frequentemente encontram erros. A abordagem comum de usar o método replaceAll("\", "\\") resulta na exceção "java.util.regex.PatternSyntaxException: Erro interno inesperado próximo ao índice 1". Isso ocorre porque o caractere de barra invertida() é tratado tanto como um caractere de escape em strings quanto em expressões regulares. Para resolver isso, escape da barra invertida na expressão regular duplicando-a:
string.replaceAll("\\\\", "\\\\\\\\");
No entanto, um regex nem sempre é necessário aqui. Como queremos apenas realizar uma substituição caractere por caractere, String#replace() pode ser suficiente:
string.replace("\\", "\\\\");
Observe que se a string for destinada ao uso em um contexto JavaScript, pode ser mais adequado usar StringEscapeUtils#escapeEcmaScript() para cobrir uma gama mais ampla de caracteres.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3