Aprender expresiones regulares para el desarrollo web
4.6 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
185 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Aprender expresiones regulares para el desarrollo web to your Wishlist.

Add to Wishlist

Aprender expresiones regulares para el desarrollo web

Encuentra, sustituye y valida información para desarrollo web.
4.6 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
185 students enrolled
Last updated 10/2016
Spanish
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 4.5 hours on-demand video
  • 11 Articles
  • 11 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • El alumno aprenderá los inicios, los conceptos y herramientas de las expresiones regulares enfocadas al desarrollo web.
  • El alumno utilizará los caracteres y metacaracteres de las expresiones regulares.
  • El alumno aprenderá a manejar los conjuntos de caracteres en las expresiones regulares para su búsqueda, validación o reemplazo.
  • El alumno utilizará los metacaracteres y cuantificadores de repetición en las expresiones regulares.
  • El alumno realizará agrupaciones y expresiones alternadas en sus expresiones regulares.
  • El alumno aplicará los delimitados de expresiones regulares, los fines de líneas y los delimitados de líneas.
  • El alumno aplicará los grupos para capturarlos y hacer referencia dentro de la misma expresión regular.
  • El alumno aprenderá a aplicar las aserciones lookarround tanto positivas y negativas
  • El alumno aprenderá desarrollar expresiones regulares para el desarrollo web.
  • El alumno aplicará las expresiones regulares con HTML5, JavaScript y PHP
View Curriculum
Requirements
  • Conocimientos generales en programación web: html5, JavaScript y PHP
Description

Las expresiones regulares son fundamentales para el desarrollo de aplicaciones en cualquier plataforma. En el desarrollo web, en particular, nos serán de enorme utilidad para la validación, remplazo y búsqueda de información. En este curso iniciaremos el estudio de las expresiones regulares desde "cero", es decir, analizaremos cada elemento poco a poco, hasta tener un conocimiento claro de las mismas.

En la segunda parte del curso desarrollaremos, tomamos como punto de partida lo aprendido, diez expresiones regulares fundamentales para el desarrollo web, así como analizaremos algunas expresiones desarrolladas por terceros.

En la tercera parte del curso tomaremos las expresiones regulares vistas en la sección anterior y las aplicaremos en los principales lenguajes de desarrollo web: HTML5, JavaScript y PHP.

Este no es un curso de programación. Necesitas tener una base mínima en el desarrollo web, pero no necesitas ser un experto, en este curso estudiaremos las expresiones regulares desde lo más básico.

Este curso está dirigido a: 

  •  Desarrolladores web que deseen construir aplicaciones con la validación de datos con HTML5, JavaScript y PHP por medio de las expresiones regulares.

  • Desarrolladores que deseen dominar las expresiones regulares.
Who is the target audience?
  • Desarrolladores web
  • Diseñadores web
Students Who Viewed This Course Also Viewed
Curriculum For This Course
62 Lectures
04:37:08
+
Bienvenida al curso Expresiones regulares para desarrollo web.
1 Lecture 03:45

Los objetivos de este curso son:

  • El alumno aprenderá los inicios, los conceptos y herramientas de las expresiones regulares enfocadas al desarrollo web.
  • El alumno utilizará los caracteres y metacaracteres de las expresiones regulares.
  • El alumno aprenderá a manejar los conjuntos de caracteres en las expresiones regulares para su búsqueda, validación o reemplazo.
  • El alumno utilizará los metacaracteres y cuantificadores de repetición en las expresiones regulares.
  • El alumno realizará agrupaciones y expresiones alternadas en sus expresiones regulares.
  • El alumno aplicará los delimitados de expresiones regulares, los fines de líneas y los delimitados de líneas.
  • El alumno aplicará los grupos para capturarlos y hacer referencia dentro de la misma expresión regular.
  • El alumno aprenderá a aplicar las aserciones lookarround tanto positivas y negativas
  • El alumno aprenderá desarrollar expresiones regulares para el desarrollo web.
  • El alumno aplicará las expresiones regulares con HTML5, JavaScript y PHP
Preview 03:45
+
Introducción las expresiones regulares
6 Lectures 18:05

Las expresiones regulares son patrones de caracteres, que mediante un motor correspondiente, nos ayuda a encontrar coincidencias en otro texto de entrada.

Las expresiones regulares no son consideradas un lenguaje de programación, ya que no cuenta con variables, ciclos, funciones, etc.

Preview 04:06

1943: Warren McCuloch  y Walter Pitts crearon las bases de las expresiones regulares para la neurociencia.

1956: Stephen Kleene le da un modelo algebraico y las nombra “expresiones regulares”

1968: Ken Thompson integra las “regex” a un editor UNIX: ed.

   g/Regular expression/p = grep

1970: grep se convierte muy popular en UNIX (awk, vi, emacs)

1980: grep se convierte en egrep (extended)

Breve historia de las expresiones regulares
04:48

Cada lenguaje puede ser compatible con los tres motores (o sabores):

  • POSIX BRE

  • POSIX ERE

  • PCRE

Incluso puede cambiar el motor dependiendo de la versión del lenguaje, por ejemplo Apache v1 soporta POSIX ERE y la versión 2 soporta PCRE.

PHP y MySQL soportan POSIX EREs, pero PHP también soporta PCRE.

Los principales motores de expresiones regulares
02:13

En este curso se utilizará una herramienta gratuita basada en JavaScript en la URL regexpal.com

Herramientas para el curso de expresiones regulares
03:44

/re/

/re/g Búsqueda global

/re/i Mayúsculas y minúsculas

/re/m Multilíneas

/re/s Validar el salto de línea

Notaciones y convenciones de las expresiones regulares
03:12

Apuntes sección 1: Introducción a las expresiones regulares

Apuntes sección 1: Introducción a las expresiones regulares
00:02
+
Los caracteres y metacaracteres de las expresiones regulares
6 Lectures 21:45

El manejo de los caracteres literales en las expresiones regulares

Los caracteres “literales”, son las expresiones regulares más sencillas.

La letra “a” empata con la letra “a”

/agua/ empata con “agua”

/agua/ empata con “aguacate”

/agua/ empata con “Nicaragua”

Preview 04:47

Puede haber cambios dependiendo del motor “regex”

Pueden tener más de un uso, depende de su contexto.

^ Inicio la regex

$ Fin de la regex

{} Repetición

() Agrupamiento

El manejo de los metacaracteres en las expresiones regulares
05:19

. (punto) cualquier caracter excepto el salto de línea

/man./  empata con “mana” “mano” “manx”

/9.99/ empata con “9.99”. “9999”, “9x99”, “9 99”

Para validar el salto de línea con el comodín punto usamos el modificador “s”

/9.99/s

/.a.a.a/ banana papaya *a*a*a

El metacaracter comodín en las expresiones regulares: el punto
04:04

Secuencias de escape en las expresiones regulares:

\ Con la diagonal invertida (backslash) escapamos a los metacaracteres

La diagonal invertida no “escapa” a las literales, sólo metacaracteres.

Las comillas no “escapan” metacaracteres.

\.

/9\.99/

/foto.\.jpg/ empata con foto1.jpg foto2.jpg, pero no foto33.jpg

Secuencias de escape en las expresiones regulares
05:10

Otros caracteres especiales en el manejo de las expresiones regulares:

El espacio no es caracter especial. Un espacio debe coincidir con otro espacio.

Para representar un tabulador utilizamos \t

Retornos de línea \r, \n, \r\n

escape \e, cambio de página \f, tabulador vertical \v

Caracteres ASCII o ANSI:

0xA9 = \xA9

Otros caracteres especiales en el manejo de las expresiones regulares
02:24

Apuntes sección 2: caracteres y metacaracteres

Apuntes sección 2: Caracteres y metacaracteres
00:01
+
El manejo de los conjunto de caracteres en las expresione regulares
7 Lectures 30:29

Definir un conjunto de caracteres:

Podemos definir un conjunto de caracteres  por medio de los “corchetes” (Square Brackets) [ ]

/[aeiou]/

/[áéíóú]/

Sólo evalúa caracteres, no palabras.

El orden de los caracteres no importa.

/m[aeiu]sa/ empata con “masa”, “mesa”, “misa” y “musa” no con “mosa”

Preview 04:25

Por medio del renglón medio” (-) podemos abreviar los rangos de caracteres, por ejemplo:

[A-Z]

Representan todos los caracteres entre ambos.

Debes escribirse en orden. No es válido

[Z-A]

Sólo utilizamos caracteres, no conjunto de caracteres:

[40-45]

No representa de 40 a 45, sino 4, de 0 a 4 y 5.

Podemos escribir diferentes grupos de caracteres:

[A-Za-z0-9]

No incluye vocales acentuadas, eñes, etc., sólo las letras del abecedario inglés.

Rangos de caracteres en las expresiones regulares
08:07

El caracter ^ (circunflejo) dentro de los corchetes es una negación de uno de los conjuntos de caracteres.

“Ninguno de los caracteres marcados”

Se escribe al inicio, dentro del conjunto de caracteres:

[^aeiou]

[^"#$%&/()=*]

Rangos negativos de caracteres en las expresiones regulares
04:19

Los metaracteres dentro de los conjuntos de caracteres ya están “escapadas”.

No hay necesidad de “escaparlos” nuevamente.

m[ao.xcv]lo malo, m.lo, pero no mulo

Los siguientes metacaracteres si hay que “escaparlos”

] - ^ \

var[[(][0-9][\])]  por ejemplo var(9) var[9]

Los metacaracteres dentro de los rangos de caracteres
04:52

Abreviaciones conjunto de caracteres

\d     Dígitos                   [0-9]

\w     Caracteres               [a-zA-Z0-9_] (no incluye el punto)

\s     Espacios en blanco        [ \t\r\n]

\D     No dígito               [^0-9]

\W     No caracteres           [^a-zA-Z0-9_]

\S    No espacios en blanco     [^ \t\r\n]

Los rangos de caracteres abreviados en PCRE
06:58

Expresiones de corchetes POSIX

[:alpha:]

[:dogit:]

[:alnum:]

[:lower:]

[:upper:]

Expresiones de corchetes POSIX

[:punct:]

[:space:]

[:blank:]

[:print:]

[:graph:]

[:cntrl:]

Los rangos de caracteres abreviados en POSIX
01:46

Apuntes sección 3: Conjunto de caracteres, en los archivos anexos

Apuntes sección 3: Conjunto de caracteres
00:02
+
Expresiones repetición en las expresiones regulares
6 Lectures 22:14

* cero o más veces del elemento precedente

+ una o más veces del elemento precedente

? cero o una vez (opcional)  del elemento precedente

Preview 08:13

{} lo que está antes de las llaves debe aparecer exactamente esa cantidad de veces

{min,max} --> lo que está antes tiene que aparecer entre esas cantidades (ambas inclusive)

{min,} definimos un mínimo, no un máximo, tiene que aparecer desde esa cantidad de veces.

Cuantificadores de repetición
04:57

Las expresiones regulares son “codiciosas” (greedy) porque siempre van a seleccionar la cadena más grande.

<p>(.*)<\/p>

<p>en el agua clara, que brota en la fuente</p> <p> un lindo pescado, sale de repente</p>

Expresiones codiciosas (greedy)
04:06

Para hacer a las expresiones regulares ya no sean “codiciosas”, las podemos hacer perezosas:

Codicioso    Perezoso

(.*)           (.*?)

(.+)           (.+?)

(?)           (??)

{min.max}    {min,max}?

Expresiones peresozas (lazy)
02:58

Utilizar las repeticiones en forma eficiente

/\w+s/

El metacaracter “+” es más eficiente que “*”

Las llaves {} son más eficientes que “+” y “*”

Delimitar las búsquedas con delimitadores (^$) es más eficiente

Utilizar las repeticiones en forma eficiente
01:59

Apuntes sección 4: Expresiones de repetición

Apuntes sección 4: Expresiones de repetición
00:01
+
Agrupaciones y alternativas en las expresiones regulares
5 Lectures 22:29

Por medio de los paréntesis “( )” podemos agrupar expresiones.

Por medio de los paréntesis podemos:

Aplicar operadores de repetición a grupos.

Hacer las expresiones más legibles.

“Capturar” un grupo para empatar o reemplazar.

No podemos agrupar dentro de un conjunto de caracteres [()]

Preview 04:54

Por medio del metacaracter “|” (pipe o línea vertical) podemos alternar expresiones.

Empata expresiones de izquierda a derecha.

Tiene precedencia las expresiones de la izquierda.

Por lo general alternamos expresiones dentro de paréntesis.

En este caso son expresiones, no caracteres.

Metacaracteres para alternar
05:04

Las expresiones regulares son “codiciosas” (greddy)

También son “ansiosas” (eager):

(agua|aguacate)

Es mejor escribir:

agua(cate)?

Escribir alteraciones en forma eficientes y lógicas
05:50

Repeticiones:

([A-Z]|[a-z]|[0-9]){3}

Anidaciones:

(jugo (manzana|pera)|agua (naranja|fresa|sandia)|agua(cate)?)

Repeticiones y anidaciones de alteraciones
06:40

Apuntes sección 5: Agrupar y alternar expresiones, en el archivo anexo.

Apuntes sección 5: Agrupar y alternar expresiones
00:01
+
Delimitadores de expresiones regulares
4 Lectures 15:52

Los metacaracteres con los cuales podemos delimitar una expresión regular son:

^    Inicio de la expresión

$    Fin de la expresión

\A    Inicio de la expresión, nunca fin de la línea

\Z    Fin de la expresión, nunca fin de la líne

Preview 06:54

El modo de línea sencilla está activo por omisión.

Puede activar el modo de línea múltiple por medio del modificador “m”.

^ y $ no empatan con el fin de línea.

Muchas herramientas UNIX solo manejan el modo de línea sencilla.

\A y \Z no funcionan en JavaScript

Modo multilíneas y saltos de línea
04:18

\b    Límites de las palabras (inicio y fin de la palabra)

\B    No es el fin ni el inicio de la palabra

Versiones antiguas de UNIX no soportan estos metacaracteres

\b\w+\b

Delimitadores de palabras en las expresiones regulares
04:37

Apuntes a la sección 6: Delimitadores de expresiones, en los archivos anexos.

Apuntes a la sección 6: Delimitadores de expresiones
00:03
+
Capturar y hacer referencia a los grupos de expresiones regulares
5 Lectures 14:35

Las expresiones agrupadas (entre paréntesis) son “capturadas”.

/a(c{2}io)n/

Recuerda el contenido y podemos “referenciarlo”.

No recuerda la expresión.

Hacemos una “referencia” iniciando como \1 al \9

Podemos utilizar la referencia dentro de la expresión o después de ella.

No se pueden utilizar dentro de las clases de caracteres, corchetes [ ].

Preview 04:36

Hay que tener cuidado en hacer referencia a expresiones “opcionales”.

Aquí hacemos un grupo y dentro viene un elemento opcional (?).

(A?)B\1C

Aquí hacemos un grupo que es opcional:

(A)?B\1

Referencia a grupos opcionales o con elementos opcionales
03:38

Utilizar referencias en la acción “Buscar y reemplazar”

Utilizar Sublime 3

(\w+), (\w+)

$2 $1

Utilizar las referencias en aplicaciones de tipo "buscar y remplazar"
02:58

Para especificar que no se capture un grupo en una expresión regular se utiliza:

?:

Puede servir para optimizar las búsquedas.

Para guardar referencias cuando estas son limitadas.

Expresiones de grupo de no-captura

(rojo) es (verde) no \1

(rojo) es (verde) no \2

(?:rojo) es (verde) no \1

Marcar un grupo como de "no captura"
03:20

Apuntes sección 7: Capturar y hacer referencia a los grupos de RegEx en los recursos anexos

Apuntes sección 7: Capturar y hacer referencia a los grupos de RegEx
00:03
+
Aserciones “lookaround” (mirar alrededor) en las expresiones regulares
4 Lectures 13:52

Las aserciones son “pruebas” para encontrar cadenas, pero que no se consideran dentro de la selección.

Tienen “longitud-cero”.

Aserciones básicas son los metacaracteres “^” y “$” que son “longitud-cero”.

Como secuencias de escape podemos definir otras aserciones simples:

\b y \B delimitador de palabra y su negativo

\a y \A inicio de palabra y su negativo

\z y \Z final de la palabra y su negativo

Preview 06:31

Por medio de una aserción negativa indicamos “que no termine en...”

/(?!regex)/

/aguacate(?!,)/

/video(?! curso)/

/video(?!.*curso)/

Aserciones negativas “lookaround”

/\bcaballo\b(?! negro)/

/\bcaballo\b(?= negro)

Aserciones negativas “lookaround”
04:29

Podemos seleccionar cadenas que contengan “antes” alguna subcadena, o en su defecto, que no la tengan como condición:

/(?<=regex)/ aserción positiva

/(?<!regex)/ aserción negativa

Aserciones negativas:

/(?<!base)ball/

/ball(?<!base)

Aserciones “lookbehind” mirar atrás positivas y negativas
02:51

Apuntes sección 8: Aserciones lookarround en los archivos anexos

Apuntes sección 8: Aserciones lookarround
00:01
+
Ejemplos de expresiones regulares para el desarrollo web
11 Lectures 01:17:44

Validar un año

/\d{4}/ 0000-9999

/(19|20)\d\d/ 1900-2099

/(19[5-9]\d|20[0-4]\d)/ 1950-2049

Preview 07:11

Validar nombres:
/\w+/
/^\w+$/
/^[A-Za-z]+$/
/^[A-Za-z.’\- ]+$/
/^([A-Za-z.’\- ]+) ([A-Za-z.’\-]+)$/
/^([A-Za-z.’\- ]+) ([A-Za-z.’\-]+ )?([A-Za-z.’\-]+)$/

Validar nombres
11:35

Igualar códigos postales
^[0-9]{5}$ 
^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$

Validar códigos postales
03:16

Igualar correos electrónicos
^\w+@\w+\.\w{3}$
^\w+@[\w.]+\.\w{2,3}$
^\w+@[\w.]+\.[A-Za-z]{2,3}$
^[\w.%+\-]+@[\w.\-]+\.[A-Za-z]{2,3}$
^[\w.%+\-]+@[\w.\-]+\.[A-Za-z]{2,7}$

Validar correos electrónicos
10:08

Igualar url’s:
^(http|https):\/\/[\w.\-]+(\.[\w\-]+)+.*$
^(http|https):\/\/[\w.\-]+(\.[\w\-]+)+[\w\-.,@?^~=%&:;/\\+#]+$

Validar las direcciones URL
09:40

Igualar decimales y monedas
^\d+\.\d+$
^$(\d*\.\d+)$
^(\$|\u00A3|\u00A5|\uFFE5)(\d*\.\d+)$
^(\$|€|\u00A3|\u00A5|\uFFE5)(\d*\.\d{0,2})$

Validar monedas, números enteros y decimales
05:30

Igualar direcciones IP
^\d+\.\d+\d+\.\d+$
^\d{1,3}\.\d{1,3}\d{1,3}\.\d{1,3}

Validar direcciones IP
07:42

Validar fechas:

^(19[5-9][0-9]|20[0-4][0-9])[-/](0?[1-9]|1[0-2])[-/](0?[1-9]|[12][0-9]|3[01])$
Acepta:
 1950-12-31, 2016-02-31, 2016-06-09,  2016/9/1
No acepta:
9999-12-31

Validar fechas con expresiones regulares
11:04

Validar horas, minutos y segundos
04:37

Validar claves de acceso
06:58

En esta clase encontrarás el documento PDF de los apuntes de la sección.

Apuntes de la sección 9: Ejemplos de expresiones regulares
00:03
2 More Sections
About the Instructor
Francisco Javier Arce Anguiano
4.3 Average rating
1,045 Reviews
13,076 Students
35 Courses
Lic. Matemáticas Aplicadas y Computación

Soy licenciado en matemáticas aplicadas y computación por parte de la Universidad Nacional Autónoma de México e instructor certificado de Adobe desde 2002. He trabajado para diferentes centros autorizados de Adobe en México y da clases en universidades de la Ciudad de México. Asimismo, he publicados cuatro libros sobre ActionScipt 2 y 3, con la editorial AlfaOmega de Méxicoasi como un libro de desarrollo de juegos con ActionScript con la misma editorial. He desarrollado aplicaciones para Android, iPhone, Windows Phone y BlackBerry. Actualmente preparo un libro para el desarrollo de juegos con HTML5 y para el desarrollo de aplicaciones a dispositivos móviles con esta tecnología. También he desarrollado múltiples aplicaciones con PHP, CSS, MySQL y JavaScript en mi vida profesional. Me he especializado en el desarrollo de aplicaciones educativas con Adobe Air y su desarrollo para dispositivos móviles. He estado pendiente de la evolución de HTML5 y CSS3 casi desde los inicios de estas tecnologías.