Comment remplacer tous les "$$$" présents dans une chaîne?
J'ai essayé
story.replaceAll("$$$","\n")Cela affiche un avertissement: Ancrer $ dans une position inattendue et le code ne fonctionne pas. Le code prend le symbole "$" comme ancre d'une expression régulière. J'ai juste besoin de remplacer ce symbole.
Y a-t-il un moyen de le faire?
4 Réponses :
"$" est un caractère spécial pour les expressions régulières.
Essayez ce qui suit:
System.out.println(story.replaceAll("\\$\\$\\$", "\n"));
Nous échappons au caractère "$" par un '\' entre le code ci-dessus.
Si vous basez votre réponse sur un commentaire - mentionnez à tout le moins l'auteur du commentaire - stackoverflow.com/users/2970947/elliott- frisch
Ce n'était pas et je n'ai pas vu les commentaires avant de répondre.
Je vous suggère de jeter un coup d'œil dans le futur. C'est le premier commentaire sur l'OP (et le commentaire a été posté avant votre réponse)
Vous pouvez remplacer tous les caractères spéciaux (au niveau des expressions régulières) en échappant à ce caractère par une barre oblique inverse. Comme les littéraux Java utilisent également la barre oblique inverse comme caractère d'échappement, vous devez échapper la barre oblique inverse elle-même.
story.replaceAll("\\${3}", something);
En utilisant {3} derrière le $ , dites-vous, qu'il devrait être trouvé exactement trois fois. Semble un peu plus élégant que "\\ $ \\ $ \\ $" .
quelque chose est donc votre remplacement, par exemple "" ou \ n , selon ce que vous voulez.
cela fonctionnera sûrement ..
story.replaceAll("\\$\\$\\$","\n")
Vous pouvez le faire pour n'importe quel caractère spécial.
Cette réponse était déjà fournie à la fois dans les commentaires du PO et en tant que réponse concrète avant la vôtre ......
@RannLifshitz, j'avais déjà tapé cette réponse et je faisais un peu de travail, puis j'ai soumis ... donc ça a été retardé. :-)
Il existe plusieurs façons de procéder. Cela dépend de ce que vous voulez faire et de l'élégance de votre solution:
String replacement = "\n"; // The replacement string
// The first way:
story.replaceAll("[$]{3}", replacement);
// Second way:
story.replaceAll("\\${3}", replacement);
// Third way:
story.replaceAll("\\$\\$\\$", replacement);
story.replaceAll ("\\ $ \\ $ \\ $", "\ n")replaceAll est pour remplacer regex. essayez d'utiliser
replace$signifie la fin de laString