Remplacement des barres obliques inverses simples par des barres obliques inverses doubles dans les chaînes
Lorsque vous essayez d'utiliser replaceAll pour convertir une chaîne telle que "\quelque chose\" en "\ quelque chose\", les développeurs rencontrent souvent des erreurs. L'approche courante consistant à utiliser la méthode replaceAll("\", "\\") entraîne l'exception "java.util.regex.PatternSyntaxException : erreur interne inattendue à proximité de l'index 1". Cela se produit car le caractère barre oblique inverse () est traité à la fois comme caractère d'échappement dans les chaînes et dans les expressions régulières. Pour résoudre ce problème, échappez la barre oblique inverse dans l'expression régulière en la doublant :
string.replaceAll("\\\\", "\\\\\\\\");
Cependant, une expression régulière n’est pas toujours nécessaire ici. Puisque nous souhaitons uniquement effectuer un remplacement caractère par caractère, String#replace() peut suffire :
string.replace("\\", "\\\\");
Notez que si la chaîne est destinée à être utilisée dans un contexte JavaScript, il peut être plus approprié d'utiliser StringEscapeUtils#escapeEcmaScript() pour couvrir une plus large gamme de caractères.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3