Sunteți pe pagina 1din 5

Ejercicios

1. Escriba expresiones regulares para denotar a cada uno de los siguientes


conjuntos de palabras:
1.
Palabras con a lo sumo una pareja de 0's consecutivos y a lo sumo una
pareja de 1's consecutivos.
2.
Cadenas en las que toda pareja de 0's contiguos aparece antes de cualquier
pareja de 1's contiguos.
3.
Cadenas que no contienen a 101 como subcadena.
4.
Cadenas equilibradas con igual nmero de 0's y de 1's tales que ningn
prefijo de cualquiera de ellas posee ms de dos 0's que 1's ni ms de dos
1's que 0's.

2. Describa en espaol a los lenguajes denotados por las siguientes expresiones


regulares:
1.
(11+0)*(00+1)*.
2.

.
3.
Ejemplos de Expresiones regulares
[abc123] Representa uno de los caracteres situados entre los parntesis.
[a-e] Representa cualquiera de los caracteres que se encuentran entre el rango de: a y
e, incluyendo tanto el primer carcter como el lltimo.
[a-eh-x] Del mismo modo que el anterior, representa cualquier carcter situado entre el
rango de: a-e y h-x.
[^a-s] Representa cualquier carcter que no se encuentre entre el rango de: a y s.

Validar un password:
Acepto un rango "-" de caracteres de la "a" a la "z" en maysculas "A-Z" y minsculas "a-z" y
con sus acentos. Tambin incluye rango de digitos del "0-9", y caracteres especiales
"!@#\$%\^&\*\?_~\/". Los caracteres especiales siempre escapados por "\".

^[a-zA-Z0-9!@#\$%\^&\*\?_~\/]{4,20}$

Validar un email:
Acepto un rango de caracteres de "A-Z" en maysculas y minsculas, rango de digitos del "0-
9, y caracteres permitidos en las direcciones de correo. Todo esto en un mnimo de 2 y no
especifico el mximo "{2,}". Seguido por un "@", y seguido por el mismo patron de
concordancia, para el nombre del dominio. Todo esto seguido por un "."(punto). Terminado por
rango de caracteres de "A-Z" en maysculas y minsculas, mnimo de 2 y mximo 4 "{2,4}"

^[a-zA-Z0-9_\-\.~]{2,}@[a-zA-Z0-9_\-\.~]{2,}\.[a-zA-Z]{2,4}$

Validar un telfono fijo (de espaa):


Empieza por 9 y continua con rango de digitos del "0-9" en una cantidad exacta de {8}.

^9[0-9]{8}$

Validar un telfono mvil (de espaa):


Igual que el anterior, pero comienza por un 6

^6[0-9]{8}$
Validar un DNI (de espaa):
Empieza con rango de digitos del "0-9" en una cantidad exacta de {8}, y continua con una letra
en rango de A-Z.

^[0-9]{8}[A-Z]$

VER Todas las Herramientas

Un poco de teora: Expresiones Regulares


(documentacin)
Puntos de anclaje

^ Define el comienzo de la cadena de expresin regular. Coincidencia al principio de la


lnea.
$ Define el final de la cadena de expresin regular, en cadenas multilnea, encontrar
la ltima ocurrencia. Coincidencia al final de la lnea.

Carcteres

[] Se utiliza para definir una clase "carcter".Se puede utilizar para que concuerde
listados, o rangos.
- Rango de caracteres, cuando se utilizan dentro de una clase de caracteres. Para los
rangos, utilizaremos el carcter - como separador de definicin, lo utilizaremos de la
siguiente forma: [A-Z] concuerda cualquier letra mayscula. Otros ejemplos vlidos
son: [0-9] [aeiou0-9]
^ Se utiliza en conjunto con los corchetes [ ^ ] para definir una NEGACIN, es decir,
concuerda cualquier carcter EXCEPTO los incluidos en el listado. [^a-f] encontrar
cualquiera excepto a,b,c,d o f. Negacin de la clase de caracteres.
Si queremos utilizar una concordancia ms genrica, podemos utilizar las variables \d
para dgitos, \w para espacios en blanco y \s para carcteres alfanumricos. Las
mismas variables en MAYSCULAS (\D) se utilizan para la negacin, stas deben ser
utilizadas fuera de los corchetes [].
. (Punto) Coincidencia con cualquier carcter exceptuando el carcter de nueva lnea \r
y \n
*Busca cero o ms de los caracteres que preceden a "*". Por ejemplo, "Ab*c"
encuentra "Ac", "Abc", "Abbc", "Abbbc", y as sucesivamente.
.* Esta comvinacin significa "lo que sea, una o ms veces" (pero cuidado con esto
que entra todo).
| Se utiliza para dar alternativas (o una concordancia o la otra), concuerda con una de
las opciones separadas por este carcter. Puede usarlo como: abc|def|hij, en tal caso
encontrara abc o def o hij. Tambin puede usarlo como: abc(def|xyz) en este caso
encontrara abcdef o abcxyz.
Caracteres no alfabticos ni numricos
Algunos de los caracteres "especiales" no numricos ni alfabticos tienen un significado de
por si, como por ejemplo [ ] { } ( ) * . ^ $ etc. No podemos ponerlos tal cual si forman parte de
nuestro formato, debemos "escaparlos" poniendo \ delante.

Agrupacin

() Podemos utilizar estos carcteres para agrupar una combinacin de los explicados
anteriormente. Se utilizar con tres funciones bsicas, la primera, organizacin visual
de la expresin, tambin la utilizaremos para aplicar carcteres de cuantificacin a un
grupo de expresiones (Por ejemplo ABC([\w]{2,5}\.(html|xml))? ), tambin una funcin
muy til, es la de agrupar el resultado de una concordancia para poder utilizarla
despus como referencia.
$n donde n es un nmero del 1 al 9, se utiliza para referenciar a una agrupacin previa
realizara con (). El ejemplo anterior devuelve dos referencias, $1 y $2, la primera
devuelve toda la parte de ([\w]{2,5}\.(html|xml)) y la segunda, nicamente (html|xml)
? Se utiliza para anular una referencia. Si lo utilizamos justo despus de abrir el
parntesis ( anulara la "back reference", en ese caso si cambiamos la expresin
anterior por: ABC([\w]{2,5}\.(?:html|xml))? veremos que slo devuelve la referencia $1.

Cuantificadores

? Coincidencia con el carcter, clase o subpatrn O 1 veces.


* Coincidencia con el carcter, clase o subpatrn O o ninguna vez.
*? Repite el elemento anterior cero o ms veces. Al contrario que el anterior, devolver
la concordancia mnima. ".*?" encuentra "def" en abc "def" "ghi" jkl
+ Coincidencia con el carcter, clase o subpatrn ms de una vez.
{n} Coincidencia con el carcter, clase o subpatrn n veces.
{n,m} Coincidencia con el carcter, clase o subpatrn como mnimo n veces y, como
mximo m veces.

Abreviatura

\d Abreviatura para la notacin [0-9].


\D Abreviatura para la notacin [0-9] (cualquier carcter que no sea un dgito).
\s Abreviatura para cualquier carcter de espacio en blanco.
\S Abreviatura para cualquier notacin que coincida con cualquier carcter que no sea
un espacio en blanco.
\w Abreviatura para la coincidencia con cualquier carcter de palabra.
\W Abreviatura para la coincidencia con cualquier carcter que no sea una palabra.
1. function validarEmail(valor) {
2. if (/^\w+([\.-]?\w+)*@\w+([\.-
]?\w+)*(\.\w{2,3,4})+$/.test(valor)){
3. alert("La direccin de email " + valor + " es correcta.");
4. } else {
5. alert("La direccin de email es incorrecta.");
6. }
7. }

Validando direcciones de
email con expresiones
regulares
Durante los ltimos aos he perfeccionado una expresin regular que
valida la mayora de direcciones de correo electrnico. Su nica
limitacin es que no valida los emails que utilizan direcciones IP en la
parte del servidor. Ahora mismo esta expresin regular es:
^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$

S-ar putea să vă placă și