![]() |
Expresiones regulares (ayudita) AMIGOS: todo lo que trato me cuesta un parto sin experiencia y el manejo de expresiones regulares no es la excepcion :neurotico Tengo unos enlaces (cientos) que tengo que parsear y estan en este formato: Cita:
Código PHP: Ideas ? |
Re: Expresiones regulares (ayudita) Utiliza preg_match_all en vez de eregi Aqui tienes informacion de cómo utilziar la función: http://es.php.net/manual/es/function.preg-match-all.php despues haz un print_r($coincidencias) y puedes ver todo lo que ha encajado. Saludos |
Re: Expresiones regulares (ayudita) Hola! wigglyUrera: muchas gracias! me da no se que no poder lograrlo con POSIX y tener que recurrir a PCRE. Es que POSIX no sirve ?: |
Re: Expresiones regulares (ayudita) ¿Quieres quitarle los li o qué quieres? Aquí tienes un ejemplo: http://raulmmmm.blogspot.com/2007/10...es-en-php.html |
Re: Expresiones regulares (ayudita) Raulmmmm y amigos: lo que quiero es poder extraer el ANCHOR, TITLE y lo que sigue de "DESCRIPCION" de cada link (es lo que queda entre </a> y <li> del siguiente) Es que manualmente me tipie 600 enlaces para un directorio y ahora quiero absorverlo con PHP y meterlo en una base de datos. Razonable, verdad ? Lo que mas quisiera en el mundo es ENTENDER porque fallo lo que he escrito y la sintaxis del ejemplo que me dio wigglyUtrera que parece muy complejo! He visto el codigo de Raulmmmmmmmmmmm y no logro entenderlo por completo (sobre todo eso de $2) pero me pregunto si hace lo que quiero y si INDEPENDIENTEMENTE de eso....... alguien puede explicarme un poquito de como se hace porque veo codigos pero debo entenderlos Gracias a Raul y wigglyUtrera a todos los que me ayudan :) |
Re: Expresiones regulares (ayudita) A ver.... nadie me puede ayudar ???? :neurotico Ya explique lo que queria hacer y si yo supiera expresiones regulares (tengo 2 dias de PHP) creo que no seria tan complicado. Nadie ? |
Re: Expresiones regulares (ayudita) Las expresiones regulares no so mi fuerte, pero esto es lo que pude hacer... Código PHP: |
Re: Expresiones regulares (ayudita) Aquí lo tienes. Ten en cuenta que los href tienen que tener dos comillas, y todo tiene que estar bien cerrado. La variable $href contiene lo que hay dentro de <a href="esto">, la variable $textodentroa contiene lo que hay dentro del a, es decir <a>esto</a>, la variable $textodespuesa contiene lo que hay entre </a> y </li>, y la variable $title contiene lo que hay después del href del a, es decir <a href="" esto></a>. Código PHP: |
Re: Expresiones regulares (ayudita) Seppo y Raulmmmm: sin palabras! muchiiiiiiiiiisimas gracias!!!!!!!!!!!!!! :borracho: |
Re: Expresiones regulares (ayudita) Hola! estube estudiando los codigos de Seppo y Raulmmmm y me quedaron algunas cosas en el tintero (que no entendi del todo) preg_match_all('#<li><a href=["|\'](.+)["|\'](.*?)>(.+)</a>(.+)[</li>]?#i', $text, $subpatterns); foreach (array_keys($subpatterns[0]) as $row) Ahi no entiendo lo que esta en negrita del codigo e igualmente con el de Raulmmm: $a = array("/\<li\>\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>(.*?)\<\/li\>/is"); Para que ese /is del final ? me pueden ayudar ? :si: |
Re: Expresiones regulares (ayudita) Las / que usó raulmmm, o los # que usé yo están para el mismo motivo, que es delimitar la expresión regular. Podés usar cualquier caracter. El más normal es /, peor yo usé # porque es un caracter que seguramente no aparezca en la expresión, mientras que / sí. El caracter "i" despues del delimitador del patron indica una busqueda insensible a mayusculas/minusculas. Para la "s": Si se define éste modificador, un meta-caracter de punto en el patrón coincidirá con todos los caracteres, incluyendo el de nueva línea. Sin él, los saltos de línea son excluídos. Este modificador es equivalente a /s en Perl. Una clase negativa como [^a] siempre coincide con un caracter de nueva línea, independientemente del uso de este modificador. Los modificadores los podés ver acá |
Re: Expresiones regulares (ayudita) Seppo: muchisimas gracias!!! :arriba: se nota que vos y Raulmmmm saben mucho :si: Como me gustan mucho los blogs de Uds. los he incluido en mi paginita web para acordarme de visitarles :-) Con su ayuda voy a hacer algo mucho mejor :si: // gracias de nuevo!!!!!!!! :arriba: |
Re: Expresiones regulares (ayudita) Voy a completar el codigo de Raulmmm con lo que aprendi :si: Código PHP: Código PHP: |
Al pastear debo usar stripslashes() y queda OK El codigo original (donde los enlaces son PASTEADOS desde una FORM) funciona SOLO si utilizo la funcion stripslashes () para pre-procesar la entrada y eliminar los \' Aqui la VERSION DEFINITIVA: :si: Código PHP: |
Re: Expresiones regulares (ayudita) ¡Me alegro de que te saliera bien! Todos hemos tenido alguna vez problemas con las expresiones regulares, incluso yo. |
| La zona horaria es GMT -6. Ahora son las 10:14. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.