OVH Cloud OVH Cloud

Escaper les simples quotes

5 réponses
Avatar
Yann Marigo
Bonjour,

Pour les besoins d'une webapp de hotline, je fini une tool Pop3 mais je
suis bloqué par un dernier petit pb:

Les UID des messages contiennent des simples quotes et forcément, ça
pose pb à l'insertion ds la DB. Je voulais faire un replaceAll(String
regexp, String) sur l'UID afin de remplacer toutes les instance de ' par
Q par ex, de manière à garder le caractère unique et la bijectivité
entre l'UID sur le serveur et celle ds la DB.

Le pb est que je n'arrive pas à écrire la bonne regexp.

Si quelqu'un peut m'aider ou me diriger vers une doc assez fournie en
exemples ...

J'ai écrit ça de tête, mais ça ne doit pas être bon :
UID.replaceAll("(?i)\\b\'\\b","Q");


Help me please :)

--
@+ Yann Marigo
Rendez-vous sur http://www.yannos.com

5 réponses

Avatar
Lionel
Yann Marigo wrote:

Les UID des messages contiennent des simples quotes et forcément, ça
pose pb à l'insertion ds la DB.


cela n'en pose pas si tu utilises des preparedStatement

Avatar
Yann Marigo
On Mon, 1 Sep 2003 15:46:31 +0200
"Lionel" wrote:

Yann Marigo wrote:

Les UID des messages contiennent des simples quotes et forcément, ça
pose pb à l'insertion ds la DB.


cela n'en pose pas si tu utilises des preparedStatement


oui, mais celà n'est pas pratique dans ma boucle synchrone.
J'ai fait un truc simplissime qui remplace tout ça. Je voulais juste
essayer d'utiliser replaceAll qui semble être une méthode puissante,
mais si je n'y arrive pas, ce n'est pas bloquant :)

Merci quand même :)


--
@+ Yann Marigo
Rendez-vous sur http://www.yannos.com


Avatar
Yann Marigo
On Mon, 01 Sep 2003 10:45:13 +0200
jerome moliere wrote:

Yann Marigo wrote:
Bonjour,

Pour les besoins d'une webapp de hotline, je fini une tool Pop3 mais
je suis bloqué par un dernier petit pb:

Les UID des messages contiennent des simples quotes et forcément, ça
pose pb à l'insertion ds la DB.


pardon mais comment un UID peut contenir des quotes ? je vois mal ce
que tu appelles UID alors!!!
pour moi un UID c'est (en gros):
1234-192.168.1.34-1234566789 par exemple, une concatenation
d'informations du type:
@ IP
numero au hasard
heure en ms



Oui, c'est ce que je fais pour mes ID externes, mais dans ce cas là,
c'est le serveur Pop qui crée ces UID et il y met des simples quotes. Vu
que je ne veux pas reparser tous les messages à chaque fois et que je ne
veux pas patcher Postfix, faut que je fasse avec. Bon, j'ai remplacé
l'appel à replaceAll par une simple boucle, mais je suis sûr que le
replaceAll avec sa regexp doit être plus efficace.


--
@+ Yann Marigo
Rendez-vous sur http://www.yannos.com


Avatar
Yann Marigo
On Mon, 1 Sep 2003 17:50:59 +0200
"Lionel" wrote:

Yann Marigo wrote:

Je voulais juste
essayer d'utiliser replaceAll qui semble être une méthode puissante,
mais si je n'y arrive pas, ce n'est pas bloquant :)


heu...et pourquoi un replace tout court te suffit pas ?
tu veux juste remplacer ' par Q, non ?



ben je pensais, mais force est de constater que celà ne fonctionne pas
:( j'ava essayé replace(''','Q'), mais celà ne semblait pas
fonctionner :(

--
@+ Yann Marigo
Mini_howto : "Apache + mod_ssl + mod_PHP + mod_caucho + resin" :
http://www.geekounet.org/docs/apache_modssl_modphp_miniHowTo.html


Avatar
Yann Marigo
On Tue, 2 Sep 2003 09:19:25 +0200
"Lionel" wrote:

Yann Marigo wrote:

ben je pensais, mais force est de constater que celà ne fonctionne
pas:( j'ava essayé replace(''','Q'), mais celà ne semblait pas
fonctionner :(


tu as essayé ca:
replace ( "'", "Q"); ???
mettre le single quote entre des double quote


public String replace(char oldChar,char newChar)


Difficile d'utiliser des doubles quotes pour désigner un char, non ?
Normalement, on désigne un char par un symbole entouré de simples quotes
et on escape certains grâce à l'antislash.. d'où le replace(''','Q').

(voir :
http://doc.yannos.com/jdk/1.4.0/api/java/lang/String.html#replace(char,
char) )

En tout cas, c sûr (et ça semble logique) replace ( "'", "Q") ne compile
pas chez moi.
--
@+ Yann Marigo
LE site libre du roller, skate et bmx :
http://www.envolee-fantastique.org