kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
23 juin 2009 à 21:57
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
25 juin 2009 à 22:56
Salut,
Je prends la liberté de poster sur le forum regex (peu fréquenté semble t il, snif) et celui ci.
En cette fin de journée fatigante je galère un peu.
Voici la trame que j'essaie de parser :
tototata - 140 db - excellent - truc-bidule - bidule machin
140 db, étonnant, 8 pm, theodore
Données bidule, truc (jazz)
en noir : ce que je cherche à capturer (changeant, forcemment)
en bleu : les parties qui ne changent jamais
en rouge : ce qui fait que je vais devenir chauve plus vite que prévu
A savoir qu'il peut y avoir des retours à la ligne et autres caractères "blancs" aléatoires entre la cloture d'une balise et la suivante.
Le problème :
Les données en rouge peuvent prendre les formes suivantes :
140 db, étonnant, 8 pm, theodore
etc ... en fait le nombre de données, séparées par des virgules (et qui peuvent contenir des chiffres, des caractères spéciaux etc ... mais jamais de virgule), peut changer, avant comme après le 8 pm que je cherche à capturer.
Par ailleurs, pour faciliter grandement la chose, le 8 pm (qui peut également être 208 pm, 102 pm) n'est pas toujours présent.
Pour ceux qui suivent encore après cette magnifique tentative d'explication :
je cherche à trouver le nombre de pm (8 pm) que contient la chaîne, et savoir également, de façon fiable (of course) si elle n'est pas présente.
Les autres données (en noir) ne me pose pas de pb, de même qu'isoler la ligne rouge et appliquer un second traitement dessus pour sortir le 8 pm (mais je souhaiterai le faire en 1 seule regex)
... en espérant m'être bien expliqué (pas gagné, je sais )
Merci d'avance.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 23 juin 2009 à 23:05
Aaaaah là y a du challenge... ça change... lol... .. . ;o)
Je suppose que c'est une regexp exécutée sous php... sinon précise le langage... ton 8pm aura toujours cette forme là (num+espace+pm) ou pas... c'est quoi une heure au format anglophone... .. ?
Par contre il y a des chances qu'il faille passer par 2 regexp une pour le (x)pm et une autre pour le reste... je jette un coup d'oeil quand j'aurais 2 minutes et te tiens au fil si je trouve quelque chose... .. .
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 24 juin 2009 à 11:40
Je pensais que SPL/Tidy aurait permis de trouver H3.. puis le Span juste après via la classe TidyNode récupérer le tototatat qu'il cherche.. mais ce n'était qu'une piste.. Et puis aussi que j'aime bien utiliser les dernières fonctions sorties.
Ce n'était qu'une piste..
S.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 24 juin 2009 à 12:03
Ah oki... .. . :o)
Oui effectivement on peut passer par le DOM aussi mais je ne pense pas que ce soit adapté dans cette situation... beaucoup trop de code là ou une regexp suffit je pense... .. .