Page 1 sur 1

expression régulière compliquée...

Posté : 18 juin 2008, 13:59
par newbie
Bonjour,
Je commence le php depuis peu et j'essaie de reprendre un programme pour le modifier... J'utilise des expressions régulières mais j'aimerais savoir si elle est correcte :

(preg_match('/^<B><FONT COLOR=#FF0000>\s+\d+ - \d+\s+[\d\.]+\s+([\d\.]+)\s+([\d\.]+)\s+-?(\d+.\d+)\s+\d\s[A-Z\.]+\s+<\/FONT><\/B>\s+\(<AHREF="[.]+"\s+TARGET="_blank">Ions\s+score\s+(\d+)<\/A>\)$/i', $ligne, $results))

sachant que la ligne en question est :
<B><FONT COLOR=#FF0000> 58 - 74 970.9840 1939.9534 1939.9276 0.0259 0 R.LGEHNIDVLEGNEQFIN.A </FONT></B> (<A HREF="peptide_view.pl?file=../data/20080611/F008155.dat&query=157&hit=1&index=gi%7c136429&px=1&section=17&ave_thresh=46" TARGET="_blank">Ions score 86</A>)

et que j'aimerais récupérer le score final 86 en $results[4].

Merci d'avance à qui pourra m'éclairer!!

Posté : 18 juin 2008, 14:17
par sadeq
Le plus simple est de cibler simplement la partie qui t'intéresse sachant que tu connais ses délimiteurs :
preg_match('/>Ions\s+score\s+(\d+)</i', $ligne, $results)

Posté : 18 juin 2008, 14:30
par newbie
:oops: C'est vrai j'avais pas pensé à séparer... Parce que j'ai quand même besoin des chiffres avant en 1, 2 et 3... mais séparer les requêtes ne m'est pas venu à l'esprit...

MERCI !! :D