Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1598 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Petit problème de regexp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit problème de regexp

n°2117017
nisalon_ca​je
Posté le 17-12-2011 à 14:48:54  profilanswer
 

Bonjour
 
J'ai la chaine suivante :

Code :
  1. abcd(1234) efgh()

et j'aimerais extraire les deux éléments abcd et 1234, ceux-ci se définissant comme :
- pour abcd : ce qui est avant (1234)
- pour 1234 : nombre entre deux parenthèses
 
j'essaie la regexp suivante :  

Code :
  1. preg_match("(\([0-9]*\))", $str, $regs);

qui me retourne bien le 1234 mais je n'arrive pas à récupérer le abcd égatlement avec la regexp
 
Pourriez vous m'aider ?
 
Merci d'avance
 

mood
Publicité
Posté le 17-12-2011 à 14:48:54  profilanswer
 

n°2117031
FlorentG
Unité de Masse
Posté le 17-12-2011 à 17:42:12  profilanswer
 

Sous quelle forme se présente abcd ? Toujours une série de lettres minuscules ? Si c'est le cas :

/([a-z]+)\(([0-9]+)\)/


Message édité par FlorentG le 17-12-2011 à 17:42:44
n°2117033
nisalon_ca​je
Posté le 17-12-2011 à 18:07:07  profilanswer
 

nan, dans mon cas réel, c'est une URL, mais j'ai mis (.*) et ca marche parfaitement

 

Merci !


Message édité par nisalon_caje le 17-12-2011 à 18:17:09

---------------
http://nisalon.labrute.com/
n°2117034
FlorentG
Unité de Masse
Posté le 17-12-2011 à 18:18:32  profilanswer
 

Essaye alors avec

/([^\(]+)\(([0-9]+)\)/

n°2117037
nisalon_ca​je
Posté le 17-12-2011 à 18:28:18  profilanswer
 

Parfait

 

Et maintenant, si je veux faire en sorte de trouver les variables php dans un document ?
Je tente /(\$[A-Za-z0-9]+)/ mais sans succès


Message édité par nisalon_caje le 17-12-2011 à 18:29:06

---------------
http://nisalon.labrute.com/
n°2117038
FlorentG
Unité de Masse
Posté le 17-12-2011 à 18:31:07  profilanswer
 

Ça devrait pourtant fonctionner, tu match sur $, suivit de bidules genre lettres et chiffres. Rajoute aussi _, qui est valide dans un nom de variable. Et on ne peut commencer par un chiffre :

/(\$[A-Za-z_][A-Za-z0-9_]+)/

n°2117039
nisalon_ca​je
Posté le 17-12-2011 à 18:35:12  profilanswer
 

Etrange, cela ne fonctionne pas
 
Voici mon code complet :

Code :
  1. <?php
  2. $str = '$ab452cd=$efg+2';
  3. preg_match("/(\$[A-Za-z_][A-Za-z0-9_]+)/", $str, $regs);
  4. var_dump($regs);
  5. ?>


---------------
http://nisalon.labrute.com/
n°2117040
FlorentG
Unité de Masse
Posté le 17-12-2011 à 18:50:27  profilanswer
 

T'as mis ta regexp entre double-quotes (" " ). Et il se trouve du coup que le  \$ se transforme en $ (les double-quotes forcent le parsing de la string pour remplacer les potentielles variables). Il faut doubler le \ :

preg_match("/(\\$[A-Za-z_][A-Za-z0-9_]+)/", $str, $regs);


Ou plus simplement utiliser des simple-quotes :
 

preg_match('/(\$[A-Za-z_][A-Za-z0-9_]+)/', $str, $regs);


n°2117041
nisalon_ca​je
Posté le 17-12-2011 à 18:56:57  profilanswer
 

merci ;)


---------------
http://nisalon.labrute.com/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Petit problème de regexp

 

Sujets relatifs
problème d'image sur un jeuProblème sur FMyScript (clone de VDM)
probleme abstracttabemodel jtable javaProbleme de scrolling
probleme exo d'algorithmiqueProblème affectation de classeur dans une variable
Problème d'envoi de caractères Japonais dans 1 formulaireprobleme execution animation opengl
Problème de définition d'une constante avec des simple quote[VBA Excel] Problème vlookup ne rappatriant que des zéros (RESOLU !)
Plus de sujets relatifs à : Petit problème de regexp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR