Foros del Web » Programando para Internet » PHP »

Problema con expresión regular

Estas en el tema de Problema con expresión regular en el foro de PHP en Foros del Web. Buenas, Tengo un problema con una expresion regular. No consigo capturar los dos nombres de los campos que marco de color azul. Código: </td> <td ...
  #1 (permalink)  
Antiguo 28/07/2010, 08:42
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Problema con expresión regular

Buenas,

Tengo un problema con una expresion regular. No consigo capturar los dos nombres de los campos que marco de color azul.


Código:
            </td>

            <td class="planetname">
                        Neptuno                    </td>
                <td class="moon">
                    </td>
            <td class="spacer02"></td>
            <td class="debris">
            <tr class="row">
                <td class="spacer01"></td>
            <td class="position">5</td>
            <td class="microplanet1"></td>
            <td class="planetname1">
                        <a class="tipsStandard" href="index.php?page=fleet1&session=2fb61df8ff20&galaxy=4&system=177&position=5&type=1&mission=7" title="|Por lo general, en esta posici?n hay planetas equilibrados con suficientes recursos de deuterio y con un buen abastecimiento de energ?a solar que ofrece suficiente espacio para su expansi?n.">
                            [Colonizar]
                </a>
            </td>

Debería poder sacar los dos nombres
Neptuno
[Colonizar]

<td class="planetname.*?>(.*?)</td>

Me extrae:

Código:
Neptuno                    

                        <a class="tipsStandard" href="index.php?page=fleet1&session=2fb61df8ff20&galaxy=4&system=177&position=5&type=1&mission=7" title="|Por lo general, en esta posici?n hay planetas equilibrados con suficientes recursos de deuterio y con un buen abastecimiento de energ?a solar que ofrece suficiente espacio para su expansi?n.">
                            [Colonizar]
                </a>
Si veis me coge todo lo que hay dentro del <td> y en el segundo aparece un <a>.
¿Sabéis de que forma puedo mejorar la expresión para saltarme esta barrera del enlace y obtener limpio el nombre [Colonizar] ?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 28/07/2010, 08:50
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problema con expresión regular

Código regex:
Ver original
  1. <[a-z]+ class="(tipsStandard|planetname)".*?>([^\s]+?)<

intenta con una expresión como esa!

no esta probada.. solo es la idea..
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 28/07/2010, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con expresión regular

El problema ya te lo habían indicado anteriormente, el problema es que eres muy genérico en tu expresión al usar ., ya que indica "cualquier carácter", necesitas definir mucho más tu expresión para que solo obtenga las partes que necesitas.

Saludos.

Etiquetas: regular
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 06:08.