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

  FORUM HardWare.fr
  Programmation
  PHP

  preg_match, trouver la dernière occurence avant telle chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

preg_match, trouver la dernière occurence avant telle chaine

n°1906977
ngkreator
Posté le 20-07-2009 à 20:32:23  profilanswer
 

Bonjour, je voudrais trouver le bon pattern qui fonctionne avec preg_match pour du php 5. Je cherche à obtenir le dernier nombre sous la forme ">\d+<" avant la chaine MMMM dans cette chaine:

 
Citation :

e452!ù$ ev >25< 4 zf45 fif_zf."==" >54<>ezf MMMM zef >57< fze4 4f4z


Je veux donc le 54.

 

Avec ce pattern ça marche:

Code :
  1. '>(\d+)<(?!.*>\d+<.*MMMM)'
 

Mais impossible de faire marcher ce même pattern dans ce cas là où je veux récupérer le 21:

 
Citation :

{RM}</span><span style="color:#f00000;letter-spacing:2;">し</span><span style="color:#f0f0f0;letter-spacing:2;">ט</span><span style="color:#f00000;letter-spacing:2;">к</span><span style="color:#f0f0f0;letter-spacing:2;">α</span></a></td><td>2061.69</td><td class="r">0</td></tr><tr onMouseOver="mi(this)" onMouseOut="mo(this)"><td class="l">21</td><td><a href="/tmos/tmos_viewer.php?action=player&stats=a&sid=34&pid=MMMM"><span style="color:#F0F0F0;font-style:italic;">िGt</span><span style="color:#E05000;font-style:italic;"> . </span><span style="color:#F0F0F0;font-style:italic;">Eng</span><span style="color:#E05000;font-style:italic;">e</span><span style="c

 

preg_match me renvoie 0.

 

Pourtant je ne vois pas ce qui diffère dans ces 2 cas. Je vous demande donc de l'aide pour trouver le bon pattern pour récupérer le 21.

 

Merci d'avance.


Message édité par ngkreator le 20-07-2009 à 20:33:51
mood
Publicité
Posté le 20-07-2009 à 20:32:23  profilanswer
 

n°1907019
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 20-07-2009 à 22:15:55  profilanswer
 

et si tu explodes sur 'MMMM' et que dans l'item à la position count -1 tu fais ta regexp sur la dernière occurence ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1907027
ngkreator
Posté le 20-07-2009 à 22:59:23  profilanswer
 

En fait tu veux dire que je découpe la chaine pour obtenir une sous chaine de la forme: "[...]>21<[...]MMMM" et que je cherche la dernière occurence de ">\d+<"?

 

J'y avais pensé. Mais pour faciliter la mise à jour des regexp dans mon code, je voulais tenter d'obtenir le nombre directement avec 1 seule opération. Après ça n'est peut être pas possible. Je voudrais en être sûr.

 

Merci pour ton aide.


Message édité par ngkreator le 20-07-2009 à 22:59:57
n°1908140
the_bigboo
Posté le 24-07-2009 à 00:45:03  profilanswer
 

et ca ?
 

Code :
  1. '/>(\d+)<.*<.*MMMM)/U'


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

  preg_match, trouver la dernière occurence avant telle chaine

 

Sujets relatifs
[preg_replace] ne remplace pas les occurences sur une même ligne[Résolu][Perl] Chaine entre 2 délimiteurs
[PHP/XML] Problème pour trouver le code PHP à partir du code VBSRecherche chaine de caractères
[RESOLU] [Batch] Trouver un mot dans plusieurs fichierspreg_replace sur page perso sfr : comment contourner le pb ?
Petit problème de structure / chaine de caractèreTélécharger la dernière version d'apache
[ VBA ] Afficher sous excel la date & Heure de la derniere sauvegarde[Resolu]Tronquer une chaine de caractère
Plus de sujets relatifs à : preg_match, trouver la dernière occurence avant telle chaine


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