J'ai la chaîne d'entrée comme J'utilise le code suivant pour y accomplir. P> "\\ {\\ {\\ {\ \\ {\\ {\ \\ {\\ {test}}}" code> et je veux supprimer tout "\" code>. Requis O / P: "{{{test}}}" code>. protected String removeEscapeChars(String regex, String remainingValue) {
Matcher matcher = Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(remainingValue);
while (matcher.find()) {
String before = remainingValue.substring(0, matcher.start());
String after = remainingValue.substring(matcher.start() + 1);
remainingValue = (before + after);
}
return remainingValue;
}
4 Réponses :
Toute raison pour laquelle vous n'utilisez pas simplement ou, si vous devez supprimer les backslashes seulement Quand ils sont avant d'ouvrir des accolades bouclées: P> string # remplacer code> ? String noSlashes = input.replace("\\{", "{");
La méthode est la méthode générique et j'utilise pour échapper à différents caractères. Je vais construire la valeur de regex basée sur des caractères à supprimer. Ici, mon code ne fonctionne que pour la 1ère occurrence non pour d'autres.
@ user1073430 Ce que je dis, c'est que vous semblez réécrire une méthode qui existe déjà. Vous pouvez également utiliser remplacement (code> code> si vous souhaitez utiliser regex.
Il devrait être aussi simple que les suivantes:
String result = remainingValue.replace("\\", "");
Comme il a été répondu auparavant, si vous voulez seulement supprimer les barres SLASHES \ code> avant le { code>, le meilleur moyen est d'utiliser String noSlashes = input.replace("\\{", "{");
Modifier la regex: Il devrait fonctionner .. p> p> "\\ & ([^;] {6})" code>
Quelle question répondez-vous?
C'est la question toto :): "Comment supprimer des caractères d'échappement d'une chaîne en Java?"
Pourquoi ne pas simplement utiliser quelque chose remplaxl ("\\", "") b> Vous pouvez simplement ajouter d'autres personnages aussi ...
Passez-vous comme une entrée
"\\ {test}" code> ou"\ {test}" code>? Le dernier ne compilera pas.Mes sorties pour vos exemples sont les suivants:
I / P: "\\ {test}" - O / P: "\ test}" code>i / p: "\\ \ \\ {test }} "- O / P:" \\ {test}} " code>i / p:" \\ {\\ {\\ {\ \ \ {\\ {test}}} "- O / P:" \\ {\ {test}}} " code>Peut-être que je ne comprends pas votre question cependant me semble que remplacera le fera. Voici un exemple qui supprimera les personnages '\', '|' et '/' de remplacement ("[\\\\] * [|] * [/] *" "," ") b>
Mon dernier commentaire avec les sorties différentes de celles que vous avez dit étaient avec la regex présentée avant @ Baz's Edition:
"\\ {. *? \\}" code>. Avec la regex actuelle ("\\\\\ {. *? \\\\\}" code>) Vous obtenez unmodèleSyntaxException code>.@PRISON. Désolé, si j'ai changé le contenu de la question en quelque sorte. Je voulais juste améliorer la structure.
@Baz Non, vous n'avez pas changé le contenu. Vous n'avez changé que la façon dont il est montré. Il arrive que l'ajout du `rend l'évasion Char \ Ne pas travailler. Vous avez fait ressembler le code. Merci.