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 14/12/2007, 17h05   #1
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Par défaut Sous-chaîne dans une sous-chaîne : optimisation RegExp

Bonjour,
J'utilise le code suivant, très simple, me permettant de récupérer les chiffres dans une chaîne de caractères.
Code php :
1
2
3
4
5
6
7
8
<?php
$regexp = '~id_mob=([0-9])+~';
$bookmark = 'http://monsite.com/application/page.php?id_mob=720&blots=13&nuts=734';
 
preg_match($regexp, $bookmark, $match);
preg_match('~\d+~', $match[0], $final_match);
$id_cherchee = $final_match[0];
?>
Cependant, il est évident que cette RegExp est améliorable.
Je suis une bille en PCRE, quelqu'un pourrait-il m'aider sur ce point SVP?
__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 17h33   #2
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Bijour,

Sans Regex tu as ça, c'est un peu crade mais bon :
Code :
1
2
3
4
5
6
7
8
9
<?php
     $bookmark = 'http://monsite.com/application/page.php?id_mob=720&blots=13&nuts=734';
 
     $chaine = substr($bookmark, strpos($bookmark,'id_mob='));
     $chaine = substr($chaine, 0, strpos($chaine,'&'));
     $chaine = str_replace('id_mob=','',$chaine);
 
     echo $chaine;
?>
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 18h22   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Pourquoi ne pas utiliser votre capture ?
Code :
1
2
3
4
5
6
7
8
$regexp = '~id_mob=(\d+)~'; // Quantifieur déplacé dans les parenthèses
$bookmark = 'http://monsite.com/application/page.php?id_mob=720&blots=13&nuts=734';
 
if (preg_match($regexp, $boomark, $match)) {
    $id_cherchee = $match[1];
} else {
    // ?
}
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 08h44   #4
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Bonjour,
Merci à tous les deux de votre réponse.

Julp, c'est exactement ce que je cherchais à faire, merci de votre aide.

Bonne journée
__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h08.


 
 
 
 
Partenaires

Hébergement Web