2009-06-11 23 views
5

¿Cómo usaría Regex para extraer el cuerpo de un documento html, teniendo en cuenta que las etiquetas html y body podrían estar en mayúsculas, minúsculas o podrían no existir?Regex Extract html Cuerpo

+5

Duplicado de http://stackoverflow.com/questions/356340/regular-expression-to-extract-html-body-content? – M4N

Respuesta

9

No use una expresión regular para esto - use algo como Html Agility Pack.

Se trata de un analizador de HTML ágil que construye una lectura/escritura DOM y apoya XPATH liso o XSLT (que en realidad no tiene que comprender XPath ni XSLT para usarlo, no se preocupe. ..). Es una biblioteca de códigos .NET que le permite analizar los archivos HTML "fuera de la web". El analizador es muy tolerante con el "HTML real global malformado". El objeto modelo es muy similar a lo que propone System.Xml, pero para documentos HTML (o transmisiones).

Luego puede extraer el body con un XPATH.

+0

Estoy de acuerdo. Lo he usado y debo decir que es rápido, limpio y ordenado. –

0

Esto debe conseguir que bastante cerca:

(?is)<body(?:\s[^>]*)>(.*?)(?:</\s*body\s*>|</\s*html\s*>|$) 
+0

Proporcione una solución detallada. – ShaileshDev

11

¿Qué tal algo como esto?

Captura todo entre <body></body> etiquetas (sin distinción de mayúsculas y minúsculas debido a RegexOptions.IgnoreCase) en un grupo llamado theBody.

RegexOptions.Singleline nos permite manejar HTML de varias líneas como una sola cadena.

Si el HTML no contiene <body></body> etiquetas, la propiedad Success del partido será falsa.

 string html; 

     // Populate the html string here 

     RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Singleline; 
     Regex regx = new Regex("<body>(?<theBody>.*)</body>", options); 

     Match match = regx.Match(html); 

     if (match.Success) { 
      string theBody = match.Groups["theBody"].Value; 
     } 
+0

+1 para una solución limpia y ordenada –

+0

¡Gracias! Eso es lo que me esfuerzo. – Darryl

+0

Genial, eso hace exactamente lo que necesitaba. – Nadjib

Cuestiones relacionadas