Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Frase en la que no aparezcan ciertas palabras con REGEX (http://www.forosdelweb.com/f18/frase-que-no-aparezcan-ciertas-palabras-con-regex-616521/)

kuve 19/08/2008 12:29

Frase en la que no aparezcan ciertas palabras con REGEX
 
Hola, estoy intentando encontrar la expresión regular que me permita reconocer cadenas que no contengan ciertas palabras.

Quizás se vea mejor en el siguiente ejemplo, quiero encontrar una cadena que no contenga las palabras account o webgen de forma que:

http://www.miweb.com/account/register =>NO VALIDA
http://www.miweb.com/account => NO VALIDA
http://www.miweb.com/webgen => NO VALIDA
http://www.miweb.com/webgen/create => NO VALIDA

http://www.miweb.com/perroflauta => VALIDA

Llevo un rato probando y no he conseguido nada claro, mi problema está en que no sé referirme a toda una palabra sino a una sola letra

## Regex probada y no funcional:

Código:

^.*([^account]|[^webgen]).*$
Gracias!

emiliodeg 19/08/2008 12:31

Respuesta: Frase en la que no aparezcan ciertas palabras con REGEX
 
^.*(account|webgen).*$

directamente sin corchetes ni ^
si cae en esto el regex lo denegas y listo
saludos

kuve 19/08/2008 12:36

Respuesta: Frase en la que no aparezcan ciertas palabras con REGEX
 
Pero es que lo que necesito es justamente lo contrario, no me vale denegarlo, esta opción también la había mirado.

emiliodeg 19/08/2008 12:40

Respuesta: Frase en la que no aparezcan ciertas palabras con REGEX
 
bueno si lo q quieres es q siempre tengan q estar alguna de estas dos palabras pones

if(eregi($expresion,$url)){} en el caso contrario le agregas un ! delante de eregi

kuve 19/08/2008 12:56

Respuesta: Frase en la que no aparezcan ciertas palabras con REGEX
 
Parece que funcionó la primera opción pero con un pequeño detalle, para hacer el remapeo de las urls tuve que poner las expresiones regulares en orden de forma que supongo que el framework comparará primero una de ellas y luego la otra haciendo una especie de condicional, de forma que han quedado:

Código:

$route['(account|webgen)/(.*)'] = "$1/$2";
$route[':any'] = "router/to"

Por ahora parece que funciona, habrá que verlo más adelante, gracias.


La zona horaria es GMT -6. Ahora son las 10:45.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.