Foros del Web » Programación para mayores de 30 ;) » RegExp »

Negación de RegExp

Estas en el tema de Negación de RegExp en el foro de RegExp en Foros del Web. lo que quiero es buscar cadenas que no coincidan con la expresión regular, parece que no tiene mucha utilidad, pero si que la tiene: - ...
  #1 (permalink)  
Antiguo 27/04/2011, 13:42
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años, 7 meses
Puntos: 6
Negación de RegExp

lo que quiero es buscar cadenas que no coincidan con la expresión regular, parece que no tiene mucha utilidad, pero si que la tiene:

- estoy listando recursivamente cierto directorio que se supone que debería de tener música, en formato ogg, con dicha extensión.

- en la actualidad, y como los archivos antes estaban en windows, hay por ejemplo archivos de thumbnails, que no me sirven, pero no solo estos, hay también algunas imágnes, uno que otro archivo comprimido, videos, y como son muchos, pues casi mejor que automatizar el proceso, en vez de hacerlo manual.

con lo cual lo que quiero es que la expresión regular no coincida con:
Código PHP:
/.ogg$/ 
espero que alguien pueda ayudarme o decirme donde encontrar información (sobre negar, no sobre regexp)
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #2 (permalink)  
Antiguo 27/04/2011, 13:46
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: Negación de RegExp

puedes usar strpos($cadena,".ogg");

Código PHP:
Ver original
  1. if(strpos($cadena,".ogg")+4==strlen($cadena)){
  2.   //el archivo es .ogg, MUEREEE!!!
  3.   unlink($cadena);
  4. }
  #3 (permalink)  
Antiguo 27/04/2011, 13:47
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 2 meses
Puntos: 334
Respuesta: Negación de RegExp

y no te sirve pathinfo() ?

www.php.net/pathinfo
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 27/04/2011, 14:06
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Negación de RegExp

Cita:
Iniciado por stramin Ver Mensaje
puedes usar strpos($cadena,".ogg");

Código PHP:
Ver original
  1. if(strpos($cadena,".ogg")+4==strlen($cadena)){
  2.   //el archivo es .ogg, MUEREEE!!!
  3.   unlink($cadena);
  4. }
lo que intento es que si no es .ogg, pues lo borro, y negando la condición podría servir... pero lo que pretendo es un código que se pueda "transpolar" a otros, como por ejemplo bash, es decir, quiero buscar una respuesta en las expresiones regulares. tal que dichas expresiones al tener una lista de archivos, como la que devuelve find en linux identifique por medio de expresiones regulares los que no con ogg.
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #5 (permalink)  
Antiguo 27/04/2011, 15:15
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 2 meses
Puntos: 334
Respuesta: Negación de RegExp

Código PHP:
if (preg_match('/^([a-z-_]++(?!\.ogg)).*$/im'$subject)) {
    
# Successful match
} else {
    
# Match attempt failed


eso te sirve ?
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: php
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 12:49.