Foros del Web » Programando para Internet » PHP »

Expresiones regulares aceptar si no es igual a cadena

Estas en el tema de Expresiones regulares aceptar si no es igual a cadena en el foro de PHP en Foros del Web. Hola! La verdad que la duda no es sobre PHP es sobre expresiones regulares pero estoy desarrollando con PHP y Zend Framework y bueno creo ...
  #1 (permalink)  
Antiguo 16/02/2010, 06:58
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 22 años, 4 meses
Puntos: 0
Expresiones regulares aceptar si no es igual a cadena

Hola!

La verdad que la duda no es sobre PHP es sobre expresiones regulares pero estoy desarrollando con PHP y Zend Framework y bueno creo que es el mejor lugar...

El caso es que me estoy volviendo loco con una expresión regular... Necesito que acepte todas las cadenas excepto si es igual a una cadena dada, por ejemplo:

- Acepta todo excepto si es = logout

No se como negarlo, si utilizo como expresion regular "logout" sin comillas, coge solo la que es igual pero como lo niego? con ^ solo se niegan caracteres no?

Un saludo.
__________________
Zepsilon.com
Diseño e imaginacion
  #2 (permalink)  
Antiguo 16/02/2010, 07:45
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Expresiones regulares aceptar si no es igual a cadena

bueno nose si es lo que quieres en verdad
Código PHP:
Ver original
  1. echo preg_match('/l(?!ogout)/i','logout') ? "Si" : "No";
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 16/02/2010, 08:59
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Expresiones regulares aceptar si no es igual a cadena

Pues creo que no es lo que quiero, no funciona como quiero, lo que quiero es que devuelva TRUE cuando no sea logout y FALSE cuando sea exactamente logout, si fuera un if seria:
Código PHP:
if($var == "logout")
//FALSE
else
//TRUE 
Algo asi como (^logout) pero claro no funciona por que la negación ^ es entre corchetes...

Un saludo!
__________________
Zepsilon.com
Diseño e imaginacion
  #4 (permalink)  
Antiguo 16/02/2010, 09:10
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Expresiones regulares aceptar si no es igual a cadena

ermm.. y porque no lo haces con un if entonces ??

if($var != "logout")
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 16/02/2010, 09:30
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 22 años, 4 meses
Puntos: 0
xq necesito que sea una expresion regular jeje
es para re-escribir la url en Zend Framework con Zend_Controller_Router_Route() y necesito una expresión regular que cuando se cumple la re-escribe y si no no, lo que estoy haciendo es algo asi como www.dominio.com/usuario/nombredeusuario re-escribe pero www.dominio.com/usuario/logout no re-escribe.

Un saludo.

De momento he encontrado una solución sin utilizar las expresiones regulares, pero ¿no existe manera de escribir una expresión regular de esta manera?

Un saludo.
__________________
Zepsilon.com
Diseño e imaginacion

Última edición por GatorV; 16/02/2010 a las 09:51
  #6 (permalink)  
Antiguo 16/02/2010, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Expresiones regulares aceptar si no es igual a cadena

Para eso tienes que crear dos rutas, una que tenga tu logout y la otra tu username, luego cuando generes tus URLs solo especificas que ruta quieres usar.

Saludos.

Etiquetas: aceptar, expresiones, regulares, cadenas
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 03:26.