Extraire un chiffre entre des caracteres

meskina Messages postés 52 Statut Membre -  
meskina Messages postés 52 Statut Membre -
Bonjour,

j'ai un champ qui rassemble une chaine de caractère(1 mot ou 2 ou plus) + un chiffre entouré par des [] .
je veux une fonction qui m'extraire à chaque fois le chiffre?

merci d'avance.

4 réponses

  1. Zep3k!GnO Messages postés 2049 Statut Membre 200
     
    -> Expression régulières
    0
  2. Heremion Messages postés 564 Statut Membre 102
     
    Bonjour Meskina,

    Tu n'as pas une fonction du style StrPos, StringPos ou Pos?
    0
  3. JooS Messages postés 2705 Statut Membre 228
     
    Salut ...
    Si c'est Genre ça ! "mot1mot2[45]"
    $var = 'mot1mot2[45]';
    $tab = explode('[', $var);
    $tab1 = explode(']', $tab[1]);      
    $chiffre = $tab1[0];

    Sinon ...

    $var = 'mot1mot2[45]'; 
    $debut = strpos($var,'[');      
    if($debut) {      
        $fin = strpos($var,']');      
        if($fin) {      
            $longueur = $fin-$debut;      
            $chiffre = substr($var,$debut+1,$longueur-1);        
        }      
    }

    Mettez en résolu quand c'est résolu -.- ...
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      Pour sécuriser, mieux vaut faire ça pour le premier exemple !
      $tab = explode('[', $var);
      if(isset($tab[1])) {
          $tab1 = explode(']', $tab[1]);
          if(isset($tab1[1])) {
              $chiffre = $tab1[0];    
          }
      }
      0
    2. Zep3k!GnO Messages postés 2049 Statut Membre 200
       
      C'est pas plus simple et sécure comme ça ? ;)
      $var = 'mot1mot2[45]';
      if (preg_match('/\[([0-9]+)\]/', $var, $aMatches)){
          echo $aMatches[1]; //affiche : 45
      }
      
      0
    3. JooS Messages postés 2705 Statut Membre 228
       
      Lol, oui, c'est juste, c'est ce que j'aller poster au début, mais ça fonctionnais pas vu que j'ai oublier quelques détails, comme le + ... :p

      PS : je suis nul en expressions régulières donc ! :p
      0
  4. meskina Messages postés 52 Statut Membre
     
    merci pour vos réponses,c'est résolu ;)
    0