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.


A voir également:

4 réponses

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

Tu n'as pas une fonction du style StrPos, StringPos ou Pos?
0
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
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
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
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
meskina Messages postés 52 Statut Membre
 
merci pour vos réponses,c'est résolu ;)
0