Foros del Web » Programando para Internet » PHP »

Frase en la que no aparezcan ciertas palabras con REGEX

Estas en el tema de Frase en la que no aparezcan ciertas palabras con REGEX en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 19/08/2008, 12:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
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!
  #2 (permalink)  
Antiguo 19/08/2008, 12:31
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
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
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 19/08/2008, 12:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
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.
  #4 (permalink)  
Antiguo 19/08/2008, 12:40
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
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
__________________
Degiovanni Emilio
developtus.com
  #5 (permalink)  
Antiguo 19/08/2008, 12:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
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.
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:12.