Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 21-feb-2007, 08:53   #1 (permalink)
luiguiray está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Los Mochis, México.
Mensajes: 81
Reto de Expresiones Regulares

Hola gente del foro, hoy traigo un problemita que me gustaria me echaran una mano, el tema es sobre Expresiones Regulares y a continuación les detallo la situación:

Vamos a decir que tengo un archivo HTML que necesito leer y extraer cierta información que se encuentra entre ciertos tags.
Veamos el siguiente ejemplo:

Código:
<tag1>
       a
       b
       c
       <cont>
            bla bla
       </cont>
       <cont>
            ye ye
       </cont>
</tag1>
Yo necesito extraer lo que hay entre el <tag1> y <cont>, es decir, yo esperaría que me regresara "a b c".
Utilizo la siguiente expresión regular:
"<tag1>([\\p{Lower}\\p{Upper}\\p{Digit}\\n\\r\\t\\s\\p{Punc t}]*)<cont>"

Bueno, pues sucede algo muy curioso, me regresa hasta el 2do <cont>, como si ignorara el primero que se encuentra. Ahora bien, hice también la prueba añadiendo un 3er "segmento" de tags <cont>x</cont> y me regresa hasta el 3er tag, en otras palabras siempre me regresa hasta el último.

NOTA: Cabe señalar que no puedo(me regaña el jefe jeje) utilizar métodos como "abc".indexOf("x"), o substring o cosas similares, pues tendría que retrabajar demasiado, además de que el performance es mejor si utilizo regex.

Saludos y espero sus respuestas.
Gracias Gente!
__________________
Te amo flakita (jrk)
luiguiray está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:11.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93