Comment remplacer tous les astérisques?
En Java, je veux remplacer tous les *
caractères avec \*
.
Exemple:
Texte: select * from blah
Résultat: select \\* from blah
public static void main(String[] args) {
String test = "select * from blah";
test = test.replaceAll("*", "\\*");
System.out.println(test);
}
Cela ne fonctionne pas, ni ne l'ajout d'un échappement barre oblique inverse.
source d'informationauteur Tim
Vous devez vous connecter pour publier un commentaire.
J'ai pensé à elle
Vous n'avez pas besoin de regex fonctionnalité pour cela, vous devez utiliser la non-regex version Chaîne de caractères.remplacer(CharSequence, CharSequence):
Pour ceux d'entre vous garder le score à la maison, et depuis la compréhension de la réponse peut être utile à quelqu'un d'autre...
fonctionne parce que vous devez vous échapper le caractère spécial
*
afin de rendre l'expression régulière heureux. Cependant,\
est un caractère spécial dans une Java chaîne, de sorte que lors de la construction de cette expression dans le langage Java, vous devez également échapper à la\
donc\\*
.Cela conduit souvent à ce que les montants à double-s'échappe lors de la rédaction de regexes dans les cordes de Java.