Encontrar ocurrencias entre dos strings
Hola, estoy tratando de encontrar todas las ocurrencias entre dos strings en un codigo html por ejemplo de este codigo:
Código:
<div class="row"> Código:
<a>Google</a> Código:
<div class="well"> Código:
</div> Código:
regexpr := TRegEx.Create('<div class="well">(.*)</div>',[roIgnoreCase,roMultiline]); |
Html se debe procesar con un PARSER de html. Las expresiones regulares son insuficientes en este caso.
Ahora bien si la estructura es fija, el problema es que (.*) quiere decir " Captura todo lo que viene a continuacion" y eso significa TODO, y ademas es "greddy" osea, tiene precedencia sobre lo que sigue. Te recomiendo este sitio que explica todo esto muy bien y completo: http://www.regexbuddy.com/index.html Y que sues alguna herramienta para testear regex de forma visual (ese sitio vende una, pero los recursos y tutoriales son genericos). Para eso especificamente, esta cadena funciona: Código PHP:
|
Hola ellucho, bienvenido a los foros de Club Delphi :) y como se acostumbra con los iniciados te invitamos a leer nuestra guía de estilo.
Si solamente buscas las ocurrencias entre dos cadenas exactas, sin pretender la flexibilidad que te ofrece un parser, desde Delphi podes hacer:
Ej. de la prueba:
Salida: Saludos :) |
Para mí el parser de html es la mejor opción porque el html cambia muchísimo de página a página. Las veces que intenté hacer cosas simples (manipulando cadenas) en html y delphi el resultado fue que funcionaba en algunas páginas y en otras no.
|
La franja horaria es GMT +2. Ahora son las 17:53:52. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi