Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

[AYUDA] Peleándome Con Expresiones Regulares.

PHP, HTML, CSS, JS, jQuery, etc.

0
No hay votos
 
Votos totales: 0

DooBie
Observador/a
Mensajes: 2
Registrado: 18 Abr 2007, 14:06

[AYUDA] Peleándome Con Expresiones Regulares.

#1

Mensaje por DooBie »

Hola compañeros, vereis, llevo un rato intentando crear una "sencilla" expresión regular para limpiar un código html que tengo, os explico:

Tengo esta cadena:

Código: Seleccionar todo

<td colspan="2" align="left" valign="bottom"><a class="maintitle" href="http://www.miservidor.com/hola_9898.html">Cadena que quiero recuperar</a><br>
De esa cadena, lo que quiero pasar a una variable es "Cadena que quiero recuperar", el enlace "http://www.miservidor.com/hola_9898.html" puede variar en el nombre del fichero, es decir, el "hola_9898.html" en otro caso podria ser "hola_7656.html" o cualquier otro. Lo demás sería siempre igual (excepto la cadena a recuperar, claro :p)
ç
Yo he probado esta expresión regular:

Código: Seleccionar todo

$regexp = '/(?:<td colspan="2" align="left" valign="bottom">)(?:<a class="maintitle" href="http:\/\/www\.miservidor\.com\/hola_*html>)?(.+)(?:<\/a>)?(?:<br>)/';
El caso es que, más o menos, funciona, pero me devuelve la cadena del enlace completa, es decir, me devuelve todo esto: <a class="maintitle" href="http://www.miservidor.com/hola_9898.html">Cadena que quiero recuperar</a> en lugar de devolverme solamente Cadena que quiero recuperar

Algo hago mal en la expresión regular, pero no acabo de encontrar el que, alguna ayudita? :?:


Gracias compañeros!


Avatar de Usuario
Raskolnikov
Observador/a
Mensajes: 28
Registrado: 13 Jun 2007, 14:05

Re: [AYUDA] Peleándome Con Expresiones Regulares.

#2

Mensaje por Raskolnikov »

Hola,

Nunca utilicé las expresiones regulares en php, pero por ahí ví que son compatibles con las de perl que esas sí alguna vez las utilicé.
Yo la haría así si lo único que cambia es el nombre del html y la cadena que quieres recuperar:

Código: Seleccionar todo

$expreg = '/<td colspan="2" align="left" valign="bottom"><a class="maintitle" href="http:\/\/www\.miservidor\.com/.*?\.html">(.*?)<\/a><br>/';
O sea, dejar entre paréntesis sólo la cadena que quieres recuperar (no tuve en cuenta si pueden variar los espacios en blanco y esas cosas. Si es así habría que agregar \s*? en todos los lugares que puede pasar esto.)

Al "machear" se van guardando en un array las partes de la cadena que concuerdan con las partes que están entre paréntesis en la expresión regular.
Lo que haría es, primero, hacer que se reconozca toda la cadena y luego asignar a una variable el elemento del array que corresponda.
En este caso el array tendría un solo elemento, la cadena que quieres recuperar, porque hay una sola sección de la exp entre paréntesis.

Espero que te sea útil.

Saludos
Vieja usurera!!! :shock:
URL: forop4.6te.net Plantilla usuada: subSilver Version de phpBB: 2.0.21 Servidor: gratuito.
MODs instalados:Attachment mod, Favicon, Redirect Post, Guest Management, Admin Userlist, eXtreme Styles, Easy Sub Forums, Prune User Posts,
Redirect anonymous users to login, Auto Cookie

Volver a “🆘 Recursos Webmaster”