Java Chaîne.replaceAll ne pas remplacer un devis avec échappé devis
Avoir un moment difficile de remplacer un devis avec une fuite de devis. J'ai une chaîne qui a la valeur de " Foo "bar" foobar", et je suis en train de remplacer les guillemets autour de la barre avec échappé citations, et il ne fonctionne pas. Je suis fou.
s=s.replaceAll("\"","\\\"");
Je m'attends à s d'avoir la valeur de " foo \bar\" foobar", mais il ne le fait pas. Toute aide?
OriginalL'auteur frosty | 2011-08-26
Vous devez vous connecter pour publier un commentaire.
replaceAll
utilise des expressions régulières - dans laquelle la barre oblique inverse échappe juste le caractère suivant, et même dans le remplacement.Utilisation
remplacer
à la place et c'est très bien... ou vous pouvez doubler la barre oblique inverse dans le second argument, si vous voulez utiliser l'expression régulière de la forme:Cela pourrait être utile si vous avez besoin pour correspondre à la saisie à l'aide des expressions régulières, mais je vous recommande fortement d'utiliser la non-regex forme, sauf si vous avez réellement besoin regex comportement.
Personnellement, je pense que c'était une erreur pour les méthodes de
String
d'utiliser des expressions régulières pour commencer avec des choses commefoo.split(".")
qui sera divisée sur chaque personnage plutôt que sur des périodes, de façon totalement inattendue pour le développeur imprudent.split(".")
. Je déteste ce...OriginalL'auteur Jon Skeet
Utilisation
s = s.replace("\"", "\\\"");
, qui est la non-regex version.OriginalL'auteur Bozho
Vous avez besoin d'échapper à la fois à remplacer tous les arguments parce qu'ils sont regex!
Donc, si vous voulez écrire
"
vous avez besoin pour échapper à la regex ->\"
mais parce que vous êtes en java vous avez besoin pour échapper à la\
et"
pour que java, de sorte que vous obtenez\\\\"
. (c'est le paramètre de recherche).Pour remplacer le paramètre que vous voulez avoir
\"
-> dans les regex:\\\"
-> Java\\\\\\\"
OriginalL'auteur Ralph
Mais vous devriez vraiment aller avec
replace(...)
comme les autres ici conseils.OriginalL'auteur Fabian Barney
Utilisation;
OriginalL'auteur Prabath Siriwardena
OriginalL'auteur Taha
suivez ci-dessous le programme et l'utilisation >.remplacer("/"."//");
OriginalL'auteur developer