Java replaceAll() la méthode pour échapper les caractères spéciaux
Je suis à l'aide de java replaceAll()
méthode pour échapper les caractères de nouvelle ligne
String comment = "ddnfa \n \r \tdnfadsf ' \r t ";
comment = comment.replaceAll("(\\n|\\r|\\t)","\\\\$1");
System.out.println(comment);
Mais le code ci-dessus est encore l'insertion de la ligne nouvelle.
Est-il un moyen de sortie du commentaire exactement le même (c'est à dire avec \n
et \r
au lieu d'insérer de nouvelles de la ligne)?
Mise à JOUR:
J'ai fini par utiliser:
comment = comment.replaceAll("\\n","\\\\n")
.replaceAll("\\r","\\\\r")
.replaceAll("\\t","\\\\t");
En fait, je prends que les commentaires de l'utilisateur donc je n'ai pas de contrôle sur elle.
essayez-le avec la regx dans ma réponse. si vous êtes satisfait, alors le taux de ma réponse.
vérifiez le commentaire dans votre sna
essayez-le avec la regx dans ma réponse. si vous êtes satisfait, alors le taux de ma réponse.
vérifiez le commentaire dans votre sna
OriginalL'auteur Abhishek Goel | 2013-08-12
Vous devez vous connecter pour publier un commentaire.
Vous aurez à passer un par un, depuis la nouvelle ligne de caractère U+000A n'a rien à voir avec les deux caractères de la séquence d'échappement
\n
:Vous êtes en utilisant les regex: une expression régulière qui correspond à un seul caractère.
OriginalL'auteur Joni
vous aurez à le faire caractère par caractère:
une autre solution est d'échapper à la Chaîne comme une Java Chaîne à l'aide de cette fonction:
Cela permettra à la Chaîne de ressembler exactement à la Chaîne de caractères dans le Code Java, mais il sera également montrer d'autres séquences d'échappement (comme
\\
,\"
etc).Mais peut-être que c'est exactement ce que vous voulez
parce que vous ne pouvez pas correspondre à la
n
de\n
car il n'est pasn
dans\n
Expression régulière littéraux comme
/\n/
ne sont pas valides en Javaj'étais en quelque sorte la pensée de javascript 😀
Aussi vous avez besoin de quatre barres obliques inverses dans le remplacement.
OriginalL'auteur x4rf41
Dure: à l'aide de Matcher
imprime
matcher.appendTail(result);
après la boucle est terminée. Aussi,matcher.group()
retourne la partie du texte qui a été adapté, de sorte que vous n'avez pas à utiliser l'substring
méthode.J'ai mis à jour le code comme vous l'avez conseillé. Je vous remercie.
OriginalL'auteur falsetru
Pourquoi ne pas utiliser
Matcher.quoteReplacement(stringToBeReplaced);
?OriginalL'auteur user4881671
C'est un
\
problème, simplifier comme ceci :de sortie :
En fait, je prends que les commentaires de l'utilisateur donc je n'ai pas de contrôle sur lui et l'utilisateur est écrit comme commment pour ses propres fins, donc je ne peux pas le modifier
vous pouvez le supprimer, point de votre commentaire et cliquez sur la croix rouge 🙂
OriginalL'auteur cl-r
Essayer..
Vous avez besoin \n et \r pour être remplacés par des \n et \r??? tous les \n \r \t être remplacé par \n?? sera-ce la suite de vos exigences?
En fait, je prends que les commentaires de l'utilisateur donc je n'ai pas de contrôle sur lui et l'utilisateur est écrit comme commment pour ses propres fins, donc je ne peux pas le modifier
Ok, alors je suppose que, vous pouvez remplacer tous les \n \r \n??!!
OriginalL'auteur AJJ