Foros del Web » Programación para mayores de 30 ;) » Java »

Expresiones regulares, mattcher y pattern

Estas en el tema de Expresiones regulares, mattcher y pattern en el foro de Java en Foros del Web. Hola, tengo un problemilla desarrollando una aplicación en java. Tengo codigo tal así: codigoi es el codigo fuente de una web en tipo String. @import ...
  #1 (permalink)  
Antiguo 14/04/2012, 09:36
 
Fecha de Ingreso: julio-2009
Mensajes: 103
Antigüedad: 15 años, 4 meses
Puntos: 1
Pregunta Expresiones regulares, mattcher y pattern

Hola, tengo un problemilla desarrollando una aplicación en java. Tengo codigo tal así:

codigoi es el codigo fuente de una web en tipo String.


Código Javascript:
Ver original
  1. Pattern p = Pattern.compile("<a href=\"/(\\w+)/en.html\">(\\w+)</a>");;
  2.         Matcher m = p.matcher(codigoi);
  3.         while (m.find())
  4.         {
  5.             ediciones.put(m.group(1), m.group(2));
  6.         }


Esto en principio me funciona bien, el problema lo tengo con las expresiones regulares. Os opngo 2 ejemplos:
Código HTML:
Ver original
  1. <a href="/extraer1/en.html">Extraer1texto</a>
  2. <a href="/extraer2/en.html">Extraer 2 : texto</a>

En casos como el segundo, el patrón no funciona, he estado mirando la api de java sobre pattern, pero lo cierto es que no la acabo de entender muy bien, he encontrado algunos ejemplos por ahí buscando y tampoco.

La cosa es que parece que el grupo (\\w) solo coje cuando no hay espacios ni caracteres etc.. Y mi idea es que lo contemple también, porque necesito extraer el contenido de todos los enlaces.
  #2 (permalink)  
Antiguo 14/04/2012, 12:12
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Expresiones regulares, mattcher y pattern

Para el texto de los enlaces, busca toco lo que esté entre > y </a (el de cerrar el <a> y el de abrir el </a>. Podría ser algo como >(.*)</a

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/04/2012, 13:15
 
Fecha de Ingreso: julio-2009
Mensajes: 103
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Expresiones regulares, mattcher y pattern

Gracias por responder :) Al final lo solucioné dividiendo el código en líneas (es decir tenía la string de una sola línea, lo fui pasando de línea a línea) y luego añadí el
Código:
Pattern pe = Pattern.compile("<a href=\"/(.*)/es.html\">(.*)</a>", Pattern.MULTILINE);
con el (.*) definí que lo cogiera todo.

Hasta otra

Etiquetas: matcher, pattern, regex
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:46.