si tengo un enlace con estas características y le paso la palabra algo este la excluya
Código PHP:
<a href="http://www.algo.com">enlace</a>
Gracias!
| |||
Expresion regular buenas tengo esta expresión href\s*=\s*(?:\"([^"]*)\"|(\S+)) , esta me extrae el valor del atributo href, como puedo hacer para que la expresión no tome en cuenta el valor de dicho atributo, si escribo una determinada cadena, ej. si tengo un enlace con estas características y le paso la palabra algo este la excluya Código PHP: Gracias! |
| ||||
Respuesta: Expresion regular Para tu caso te hace falta algo similar href="http:\/\/(((?!algo).)*)" donde algo será la cadena que quieres excluir. La explicación es sencilla, igual que . corresponde a cualquier carácter excepto salto de línea, si se hiciera (?!algo).* significa que no puede empezar por algo pero que tras algo cualquier cosa inclusive algo puede darse, entonces fallaría siempre que no comenzara con eso. ((excepcion).)* implica que cualquier cosa a cada carácter examinado puede corresponder excepto si es (?!excepcion), y que excepcion va antes para que deseche esa iteración y continúe con el siguiente carácter. * implica que esa comprobación será efectiva 0 o más veces, tantas como sea larga la cadena a comprobar. O sea, para <a href="http://www.algo.com">enlace</a> valdría Cita: que es finalmentehref="http:\/\/(((?!www\.algo\.com).)*)" 'href="http:\/\/(((?!' + variable +').)*)"' y para capturar el grupo resultante (la url) si hubiera captura y haciendo un ajuste para admitir comilla simple y doble
Código Javascript:
Ver original que devolvería http://asd.com Un saludo.
__________________ 21añero. HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador. Músico (clarinetista/pianista) y compositor Última edición por dontexplain; 28/01/2013 a las 02:58 |
Etiquetas: |