Como dice Wikipedia una expresión regular describe un conjunto de cadenas de caracteres sin enumerar sus elementos, esto no dice mucho o dice todo, pero como no le entiendo va mi propio tutorial practico.
en el shell de linux creo estos archivos para pruebas
$ touch RichardSite.txt
$ touch richardsite.txt
$ touch Richardsite.txt
$ touch richardSite.txt
$ touch Richard-Site.txt
$ touch data
$ touch datax1
$ touch datax2
$ touch otro
$ ls
data
datax1
datax2
otro
richardsite.txt
richardSite.txt
Richardsite.txt
Richard-Site.txt
RichardSite.txt
$ls [Rr]ichardsite.txt
richardsite.txt Richardsite.txt
$ls [Rr]ichard[Ss]ite.txt
richardsite.txt richardSite.txt Richardsite.txt RichardSite.txt
$ls *-*
Richard-Site.txt
$ls ?ichard?ite.txt
richardsite.txt richardSite.txt Richardsite.txt RichardSite.txt
$ ls data*
data datax1 datax2
Ok, hasta aquí todo va bien, pero cuando intento usar el circunflejo para que me liste lo mismo que lista $ ls data* , es decir, todo lo que comienza con data.
Caret circumflex ^
$ ls ^data
ls: no se puede acceder a ^data: No existe el fichero o el directorio[a^]*
Para lograr lo que se intento hacer con $ ls ^data se tendría que hacer así:
$ ls | grep -E '^data'
data
datax1
datax2
y para obtener lo opuesto es
$ ls | grep -vE '^data'
otro
richardsite.txt
richardSite.txt
Richardsite.txt
Richard-Site.txt
RichardSite.txt
http://linux.die.net/man/7/glob
Otro lugar de información útil es
http://www.proyecto-f.net/2009/12/10-expresiones-regulares-para-php/
donde dan 10 expresiones regulares para PHP
No hay comentarios:
Publicar un comentario