Rechercher : dans
Par :

Problème preg_replace

Dernière réponse le 19 jui 2008 à 00:33:19 Zabuza66, le 8 mar 2008 à 02:33:05 
 Signaler ce message aux modérateurs

Bonjour,
J'ai quelques problèmes avec la fonction preg_replace avec laquelle je me tire les cheveux depuis bien longtemps, malgrés de nombreuses lectures de Tutos ( comme ici http://lumadis.be/regex/tuto_pcre.php )

Je cherche à remplacer par un espace " " tous les - ( signes moins, ou tiret donc ) d'une chaîne SAUF ( sinon j'utiliserai str_replace) si elle possède deux -
En gros
Bonjour-ca-va--bien
devrait donner Bonjour ca va --bien ( ou quelque chose dans le genre )

Quelcun pourrait-il m'aider svp?

Configuration: Windows XP
Firefox 2.0.0.12

Meilleures réponses pour « Problème preg_replace » dans :
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...

1

Clement, le 9 jun 2008 à 16:04:10

J'ai une solution... Un peu tordue, mais une solution quand même !
En passant uniquement avec str_replace :

tu remplaces les -- par, par exemple, ||| (le genre de truc que tu ne trouveras nulle part).
Après tu remplaces les - par des espaces.
Et enfin tu remets les --...

Tout cela obligatoirement en 3 étapes.

Ca donne :

$var = str_replace("--","|||",$var);
$var = str_replace("-"," ",$var);
$var = str_replace("|||","--",$var);

Je sais, c'est pas le pied... Mais je vois pas comment faire autrement ! :)

Répondre à Clement

2

Concombre Masqué, le 30 jun 2008 à 23:15:44

La solution de facilité consisterait en remplaçant d'abord les doubles tirets par quelquechose d'autre, par exemple les caractères "AQWZSX", puis de remplacer les tirets par les espaces, et enfin remplacer tout les AQWZSX par les doubles tirets (si tu veux les retrouver).


Pour faire une seule opération, il faut réfléchir 5 minutes que je n'ai pas :p

Répondre à Concombre Masqué

3

 Zabuza66, le 19 jui 2008 à 00:33:19
  • +1

[quote]Pour faire une seule opération, il faut réfléchir 5 minutes que je n'ai pas :p/quote
Tu as donc perdu du temps pour rien, vu que Clément m'a répondu.
J'ai fais quelque chose de similaire

Répondre à Zabuza66
Collection CommentÇaMarche.net