2010-09-27 7 views
0

Je dois trouver quoi que ce soit dans un tr ...Aide regex: Tout dans une balise

<tr class="class1"> 
    more tags here, 
    multiple lines... 
</tr> 

Comment puis-je obtenir tout ce qui est entre <tr class="class1"> et </tr>?

merci!

+0

Les expressions régulières ne sont pas adaptées à l'analyse du code HTML car HTML n'est pas un [langage standard] (http://en.wikipedia.org/wiki/Regular_language). S'il vous plaît regarder dans les analyseurs DOM à la place. –

+0

duplicata possible de [Quelle regex correspondra au texte excluant ce qui se trouve dans les balises HTML?] (Http://stackoverflow.com/questions/179779/what-regex-will-match-text-excluding-what-lies-within-html -tags) –

Répondre

1

You need to use a real HTML parser, regex n'est pas suffisant pour effectuer cette tâche. Cela dit, vous pouvez utiliser une mauvaise expression comme ceci: /<tr.*?>(.*?)<\/tr>/ où le groupe 1 aura ce qui est (généralement) entre les balises <tr>, mais aucune garantie sur l'exactitude ... des choses comme des balises imbriquées le rejetteront. Vous devez utiliser un analyseur HTML réel.

+0

J'ai juste besoin de savoir ce qui se passe entre les très ... peu importe si c'est bien formé ou pas, et ce qu'il contient –

+2

Cela importe si c'est bien formé ou pas, parce que si vous deviez créer une regex, il faudrait en tenir compte. En outre, il pourrait y avoir une imbrication infinie de '' s, et les expressions rationnelles ne sont pas récursives. Les parseurs HTML sont la solution. –

+0

merci, mais rien ne correspond ... J'utilise. Net, les paramètres spéciaux devraient être définis? –