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

  FORUM HardWare.fr
  Programmation
  PHP

  Pb preg_match, alternative

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb preg_match, alternative

n°1269472
Henry2naya
PUTAIN DE MERDE MON CODE MERDE
Posté le 18-12-2005 à 15:07:47  profilanswer
 

Bonjour j'ai un petit problème avec preg:
 
je voudrais les chaines entre <td><h5> et </td></h5> ou entre <td><h4> et </td></h4>
 
séparément les deux preg marchent :
preg_match_all("#<td><h5>(.*)</h5></td>.*>#U",$reg[1], $syn);
preg_match_all("#<td><h4>(.*)</h4></td>.*>#U",$reg[1], $syn2);
 
si je fais:
preg_match_all("#[<td><h4>|<td><h5>](.*)[</td></h4>|</h5></td>].*>#U",$reg[1], $syn);
 
je récupère aussi les chaines entre <td><h5> et </td></h4> ou une autre combinaison ce que je ne veux pas;
 
J'ai donc essayé:
preg_match_all("#[<td><h4>(.*)</td></h4>|<td><h5>(.*)</h5></td>].*>#U",$reg[1], $syn);
 
mais ca donne rien :-(
 
Quelqu'un peux m'aider svp??
 
Merci
 
NaY :bounce:

mood
Publicité
Posté le 18-12-2005 à 15:07:47  profilanswer
 

n°1269474
0x90
Posté le 18-12-2005 à 15:09:20  profilanswer
 

Au pif, kkchose comme :
preg_match_all("#<td><h(5|4)>(.*)</h\1></td>.*>#U",$reg[2], $syn);  
ca marche pas ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1269475
afbilou
pouet your life
Posté le 18-12-2005 à 15:12:38  profilanswer
 

le choix en tre CA ou CECI ca se fait avec (CA|CECI) et non pas [CA|CECI]. Il est meme conseillé de faire (?:CA|CECI) pour ne pas ke les parentheses soient capturantes alors que ce n'est pas utile (gain de vitesse et de memoire).
 
mais il y a ecnore une solution plus elegante a ton probleme :
preg_match_all('#<td><h(?:4|5)>(.*)</h\1></td>.*>#U',$reg[1], $syn2);
 
voila :)

n°1269476
Henry2naya
PUTAIN DE MERDE MON CODE MERDE
Posté le 18-12-2005 à 15:12:46  profilanswer
 

0x90 a écrit :

Au pif, kkchose comme :
preg_match_all("#<td><h(5|4)>(.*)</h\1></td>.*>#U",$reg[2], $syn);  
ca marche pas ?


 
Merci, mais en fait j'ai simplifié les balises que je cherche pour être plus clair, en fait les balises c'est:
 
m_gen_cprojection=(.*)['\.]html
mcp_gen_cprojection=(.*)['\&]codepostal=


Message édité par Henry2naya le 18-12-2005 à 15:13:04
n°1269477
0x90
Posté le 18-12-2005 à 15:13:44  profilanswer
 

afbilou a écrit :

le choix en tre CA ou CECI ca se fait avec (CA|CECI) et non pas [CA|CECI]. Il est meme conseillé de faire (?:CA|CECI) pour ne pas ke les parentheses soient capturantes alors que ce n'est pas utile (gain de vitesse et de memoire).
 
mais il y a ecnore une solution plus elegante a ton probleme :
preg_match_all('#<td><h(?:4|5)>(.*)</h\1></td>.*>#U',$reg[1], $syn2);
 
voila :)


 
Si c'est pas capturant tu arrive quand même à le récupérer dans le \1 ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1269479
afbilou
pouet your life
Posté le 18-12-2005 à 15:18:27  profilanswer
 

Ha non en effet :mmmfff:

n°1269480
Henry2naya
PUTAIN DE MERDE MON CODE MERDE
Posté le 18-12-2005 à 15:20:44  profilanswer
 

afbilou a écrit :

le choix en tre CA ou CECI ca se fait avec (CA|CECI) et non pas [CA|CECI]. Il est meme conseillé de faire (?:CA|CECI) pour ne pas ke les parentheses soient capturantes alors que ce n'est pas utile (gain de vitesse et de memoire).
 
mais il y a ecnore une solution plus elegante a ton probleme :
preg_match_all('#<td><h(?:4|5)>(.*)</h\1></td>.*>#U',$reg[1], $syn2);
 
voila :)


 
alors j'ai essayé :
preg_match_all("#(?:mcp_gen_cprojection=(.*)['\&]codepostal=|m_gen_cprojection=(.*)['\.]html ).*>#U",$reg[1], $syn);  
 
Il trouve les premieres balises (mcp_gen) mais pas le deuxième choix... (m_gen)
Si j'inverse les deux c l'inverse : donc y'a que le premier choix qui marche...


Message édité par Henry2naya le 18-12-2005 à 15:23:03
n°1269482
afbilou
pouet your life
Posté le 18-12-2005 à 15:27:03  profilanswer
 

que veux tu dire par ['\&] et ['\.] ????

n°1269483
Henry2naya
PUTAIN DE MERDE MON CODE MERDE
Posté le 18-12-2005 à 15:28:21  profilanswer
 

afbilou a écrit :

que veux tu dire par ['\&] et ['\.] ????


 
Je croyais que ct pour les caractères spéciaux, si je laisse "&" et "." ca marche aussi, et j'ai changé pour ca...
Mais toujours le meme pb, il ne reconnait que le premier choix

n°1269485
afbilou
pouet your life
Posté le 18-12-2005 à 15:32:06  profilanswer
 

Pour le & c'est bon ... mais laisse pas le . tout seul ... ca matche n'import kel caractere sinon !
 
Il est difficile de t'aider avec pour seule indication un pattern visiblement bugé puisqu'il ne marche pas comme tu le souhaites. Montre nous un bout de texte que tu veux passer a la preg_match_moulinette et met en evidence les champs que tu veux recuperer dans ce texte.

mood
Publicité
Posté le 18-12-2005 à 15:32:06  profilanswer
 

n°1269491
Henry2naya
PUTAIN DE MERDE MON CODE MERDE
Posté le 18-12-2005 à 15:41:42  profilanswer
 

afbilou a écrit :

Pour le & c'est bon ... mais laisse pas le . tout seul ... ca matche n'import kel caractere sinon !
 
Il est difficile de t'aider avec pour seule indication un pattern visiblement bugé puisqu'il ne marche pas comme tu le souhaites. Montre nous un bout de texte que tu veux passer a la preg_match_moulinette et met en evidence les champs que tu veux recuperer dans ce texte.


 
Merci beaucoup pour les conseils, c mon analyse du pré-mouliné qui était pas top, mais vos conseils m'ont bien aidé  
 
merci mille fois... (et comme on dit, on peux remercier mille fois une personne, mais on peux pas remercier une fois mille personne..; euh non ca pas , on peux... :pt1cable: )
 
;-)


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

  Pb preg_match, alternative

 

Sujets relatifs
preg et retour chariotprob preg_replace
alternative aux tableaux ? [total newbie]Alternative Frames
regex et preg_replace()Alternative à DotNetNuke
Alternative au TIMEDIFFQuestion à propos de la fonction "preg_replace"
Alternative a GOTOXY ???Quelle alternative pour les balises <Embed> incompatible xhtml ?
Plus de sujets relatifs à : Pb preg_match, alternative


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