J'essaie d'implémenter une expression régulière qui va essentiellement extraire tous les éléments de la ligne ELEMENTS
.Comment trouver un bloc et le parcourir
dire que j'ai cette chaîne html:
<tr> <td> ELEMENTS</td> <td> <element>A1</element> , <element>A2</element> </td></tr><tr> <td> MORE_ELEMENTS</td> <td><element> A3</element>, <element> A4</element>, <element> A5</element> </td></tr>
Et je veux extraire tous les éléments de la ELEMENT
ligne (A1
, A2
et A3
), mais pas les éléments de la MORE_ELEMENTS
ligne (A4
, A5
et A6
).
En utilisant cette expression rationnelle, vous pouvez correspondre à tous les éléments:
<element>([^<]+)<\/element>\s*,*\s*
Mais si j'essaie de limiter à ELEMENT
S en utilisant cette expression rationnelle:
<td>\s*ELEMENTS.*?<element>([^<]+)<\/element>\s*,*\s*
Je Reconnait uniquement le premier élément. Je ne sais pas comment faire correspondre la ligne ELEMENTS
et puis itérer à l'intérieur pour extraire tous les éléments.
Essayé cela aussi, mais ne fonctionne pas non plus:
<td>\s*ELEMENTS.*?<element>([^<]+)<\/element>\s*,*\s*(<element>([^<]+)<\/element>\s*,*\s*)*
Toutes les idées? Merci d'avance!
Migsy
Vous ne voulez pas faire cela avec regexp, cherchez plutôt un outil de type Meachanize. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
Quelle plate-forme utilisez-vous? –
@anders J'utilise PHP – Migsy