miércoles, 28 de abril de 2010

opciones de operdores

Si alguna ves has visto expresiones regulares anteriormente, quizá te habrás dado cuenta que al final de ellas luego hay letras. Estas letras son "opciones" que le indica a perl como interpretar la expresión.

Hay varias opciones que se pueden usar, pero como esto es sólo una introducción sólo voy a poner las más usuales:


Opcion: i Este operador le dice a perl que ignore el uso de mayúscula y minúsculas. Por ejemplo:


my $string = "Palabra";
#La siguiente expresión da falso debido a que hay una mayúscula
print "Verdadero" if $string =~ m/palabra/;
#La siguiente expresión da verdadero debido a que le decimos a perl que no nos importan las mayúsculas


print "Verdadero" if $string =~ m/palabra/i;


Opción: g


Esta opción le dice a perl que repita la sustitución durante todas las ocurrencias de la cadena. Por ejemplo:
my $string = "Lunes y otro Lunes";
#Solo hará el remplazo al primer Lunes


$string =~ s/Lunes/Martes/;
#Hará el remplazo al todos los Lunes

$string =~ s/Lunes/Martes/g;


Opción: m

Este opción le dice a perl que la cadena que se esta evaluando es de varias lineas. Para dar más velocidad al proceso, perl hace una optimización como si estuviera evaluando una sola linea. Así que si tu cadena tiene varios "\n", tienes que usar esta opcion para quitar esta optimización.

Meta-Secuencias


Dentro de nuestras expresiones podemos usar lo que se llaman "Meta-Secuencia", estos son caracteres que simbolizan cosas específicas y aquí esta una lista de las más usadas.


Meta: \b
Esta meta-secuencia se usa para marcar un fin de palabra. Por ejemplo:


$string = "Mi palabara es esta.";


#Debido a que en esta expresión se usar el fin de palabra el resultado es verdadero por "es" y no por "esta".


print "OK" if $string =~ "\bes\b";


Meta: \B

El contrario de la meta-secuencia anterior, esto simboliza un fin de no-palabra.

Meta: \d
Cualquier dígito (0-9). Por ejemplo:


my $string = "Numeros 12345";


print "Hay números." if $string =~ m/\d/;


Meta: \D


Simboliza cualquier no-digito.


Meta: \s

Cualquier espacio en blanco. Por ejemplo:


my $string = "Mis palabras";


#Quitamos todos los espacios en blanco


$string =~ s/\s//g;


Meta: \S


Cualquier no-espacio.


Meta: \t


Cualquier tabulador.


Meta: \u


Cambia el siguiente carácter a mayúscula.


Meta: \U


Cambia los carácteres que siguen a mayúscula hasta encontrar un \E.


Meta: \l


Cambia el caracter que sigue por minúscula.


Meta: \L
Cambia los caracteres siguientes a minúsculas hasta encontrar un \E.


Meta: \w


Meta-secuencia para todos los caracteres de palabra, es decir todos los caracteres alfa-númericos y el guíon. Por ejemplo:


$string = '$%&·';


print "No hay palabras" if $string !~ m/\w/;


Meta: \W


Todos los caracteres de no-palabra.










No hay comentarios:

Publicar un comentario