Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 17h11   #1
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 90
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mars 2003
Messages : 90
Points : 25
Points : 25
Par défaut Extraire un nombre d'une grande chaine de caractères

Bonjour,

j'ai une grande chaine de caractères, qui contient des chiffres et des lettres, et je voudrais extraire le nombre qui sera derrière une partie bien préciser de la chaine. Ca ressemblera à ça
Citation:
blablabljjkh56 lkJLKJ 554 MARQUEUR: XXX ksjds 898 çnsdkfj blabla
et je veux récupérer le nombre XXX après le "MARQUEUR: ". Je sais qu'il faut chercher du coté des expression rationnelles que je connais un peu, mais les exemples du net que je trouve sont plus simples : il n'y a souvent qu'un nombre dans la chaine, alors que là il y en a plein et je veux juste la partie après un marqueur...

Quelqu'un peut me mettre sur la voie ?

Merci !
casier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 15h35   #2
Membre régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 55
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2011
Messages : 55
Points : 77
Points : 77
La REGEXP dépend du contexte.

#MARQUEUR: /d+# suffit si tu es sûr que les chiffres derrière marqueurs ne sont ni espacés par des tirets ou autres séparations.

Sinon tu peux utiliser #MARQUEUR: [^a-ZA-Z]+# qui va avancer jusqu'à la première lettre suivante. c'est cependant bien plus risqué

ensuite si tu veux le nombre uniquement entoure /d+ ou [^a-ZA-Z]+ par des parenthèses et utilise ca
Code :
1
2
preg_match('#MARQUEUR: (/d+)#',$text,$matches);
$nombre = $matches[1];
Avalion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h47.


 
 
 
 
Partenaires

Hébergement Web