[PHP] Regex

Résolu
Bonjour,

J'ai une suite de chiffres comme ceux-ci : 01.02.01.20, 02.03.15, 02.05.10, 01.10 ...
J'aimerais quelque soit la longueur de ma chaine pouvoir supprimer les 0 qui se trouvent avant un chiffre, ce qui donnerait : 1.2.1.20, 2.3.15, 2.5.10, 1.10

J'ai essayé les choses choses suivantes :
$replace = '\\2';
$monRegex = "[0][1-9]*.[0][1-9]*.[0][1-9]*";
$sMenu = eregi_replace($monRegex, $replace ,$sMenu0);
et :
$sMenu = eregi("[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*.[1-9][1-9]*", $replace ,$sMenu0);

Mais lorsque je fais echo $Menu; rien ne fonctionne, svp j'ai besoin d'aide !
Configuration: Windows XP
Firefox 3.0.12

7 réponses

  1. Ben sinon tu remplaces les espace+0 par espace, et les .+0 par des .
    pas très propre mais bon ...
    XD
    0
    1. Le problème c'est que mon str_replace ne fonctionne pas pour les premiers 0 de mes chaines :

      $sMenu0="02.01.10";
      $sMenu = str_replace(".0",".",$sMenu0);
      $sMenu = str_replace(" 0"," ",$sMenu);
      Ca me sort : 02.1.10 au lieu de 2.1.10.
      Je vois pas comment faire du coup...
      0
  2. Modérateur
    Salut,

    Utilise un test avant plutôt.

    0
    1. Modérateur
      Re,

      Je n'ai pas testé
      <?php
        $chaine="01.02.01.20, 02.03.15, 02.05.10, 01.10"
        echo ereg_replace("0(?=[1-9])","",$chaine);
      ?>

      0
      1. Ouhla, ici j'ai un beau warning sur touets mes lignes : Warning: ereg_replace() [function.ereg-replace]: REG_BADRPT lol
        0
    2. Modérateur
      Salut,

      Voilà je viens de tester sur http://www.solmetra.com/scripts/regex/index.php avec preg_replace

      <?php
        $chaine="01.02.01.20, 02.03.15, 02.05.10, 01.10"
        echo preg_replace('/0(?=[1-9])/', '', $chaine);
      ?>

      Peut être c'est "$chaine" ou '$chaine'

      P.S Ca marche ;-)
      Le résultat est

      Function called:
      preg_replace('/0(?=[1-9])/', '', '01.02.01.20, 02.03.15, 02.05.10, 01.10'); 
      
      Function returned:
      string(32) "1.2.1.20, 2.3.15, 2.5.10, 1.10"


      0
      1. @Lami20j : merci ça marche du tonnerre ! Super depuis le temps que j'étais la dessus :)
        @Thamior : merci pour les liens il vont m'être bien utiles à l'avenir !
        0