Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Expresiones Regulares
^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[13-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$ Augusto Studer 06/11/2015
2
1. ¿Qué son y para qué sirven?
3
Una expresión regular, es una secuencia de caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones. las expresiones regulares proveen una manera muy flexible de buscar o reconocer cadenas de texto.
4
2. ¿Por qué utilizarlas?
5
Comodín - *.txt se puede matchear como .*\.txt$
Potentes y flexibles, permiten representar búsquedas complejas de manera simple. Pueden ser muy rápidas. Reducen la programación. (Requieren de tiempo para aprender a UTILIZARLAS BIEN )
6
3. Manipulando cadenas de caracteres
7
(?=(.*[a-zA-Z]){5})^[0-9a-zA-Z]{8,}$
Validaciones public static boolean check(String ) { String name = String domain = .length()); … _ } Password 8 caracteres de largo, habiendo al menos 5 letras. public static boolean check(String password) { if(password.length() >= 8){ int count = 0; for (int i = 0, len = password.length(); i < len; i++) { if (Character.isLetter(password.charAt(i))) { count++; } } if(count >= 5) { return true; } else { return false; } return false; } (?=(.*[a-zA-Z]){5})^[0-9a-zA-Z]{8,}$
8
Ejemplo: RFC822 - Mail Address
(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t] \t]))*"(?:(?: \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+(?:(?:( ?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \000-\0 31]+(?:(?:(?:\r\n)?[ ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+ (?:(?:(?:\r\n)?[ (?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z \t]))*"(?:(?:\r\n) ?[ \t])*)*\<(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\ r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n) ?[ \t] \000-\031]+(?:(?:(?:\r\n)?[ \t])* )(?:\.(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t] \t])*))*) *:(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+ \t]))*"(?:(?:\r \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+(?:(?:(?: \r\n)?[ \t ]))*"(?:(?:\r\n)?[ \000-\031 ]+(?:(?:(?:\r\n)?[ ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+(? :(?:(?:\r\n)?[ :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \000-\031]+(?:(? :(?:\r\n)?[ [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t] \000-\031]+(?:(?:(?:\r\n)?[ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(? \000-\031]+(?:(?:(?:\r\n)?[ \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \000- \031]+(?:(?:(?:\r\n)?[ ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ .\[\] \000-\031]+(?:(?:(?:\r\n)?[ ]\r\\]|\\.)*\](?:(?:\r\n)?[ [\] \000-\031]+(?:(?:(?:\r\n)?[ r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \0 00-\031]+(?:(?:(?:\r\n)?[ .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])* \000-\031]+(?:(?:(?:\r\n)?[ \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[ \000-\031]+(?:(?:(?:\r\n)?[ ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*( \000-\031]+(?:(?:(?:\r\n)?[ ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:( ?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[ \t]))*"(?:(?:\r\n)?[ \t \000-\031]+(?:(?:(?:\r\n)?[ \t \t])*)(? :\.(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+| \t])*))*|(?: \000-\031]+(?:(?:(?:\r\n)?[ ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n) ?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[" \t])*)(?:\.(?:(?:\r\n) ?[ \000-\031]+(?:(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t] \000-\031]+(?:(?:(?:\r\n)?[ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)? \000-\031]+(?:(?:(?:\r\n)?[ \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?: \r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[ \t]))*"(?:(?:\r\n)?[ \t]) \000-\031]+(?:(?:(?:\r\n)?[ \t]) \t])*)(?:\ .(?:(?:\r\n)?[ \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z \t])*))*\>(?:( ?:\r\n)?[ \t])*))*)?;\s*)
9
“Some people, when confronted with a problem, think: “I know, I'll use regular expressions.” Now they have two problems.” Jamie Zawinski
10
4. Conceptos Básicos
11
Metacaracteres \ - diagonal invertida: elimina el metavalor del siguiente caracter, por ej: \^. . - punto: Coincidir con cualquier caracter, excepto el de final de línea. ^ - intercalación: Coincidir con el comienzo de una línea, por ej: ^A. [^] - intercalación entre paréntesis rectos: Coincidir con cualquier caracter, excepto los listados entre paréntesis rectos, por ej: [^0-9]. $ - dólar: Coincidir con el final de una linea, por ej: A$. | - barra vertical: Coincidir con la expresión regular que la precede ó con la que la sucede. [ ] - paréntesis rectos: Coincidir con cualquier caracter listado dentro de los mismos, por ej: [abcde]. Se puede utilizar el guión (-) para definir un rango, por ej: [0-9]. ( ) - paréntesis: Agrupa a una o más expresiones regulares para conformar una Expresión Regular Lógica que consiste de dos sub-expresiones regulares. Se utiliza también para anular la precedencia estandar de ciertos caracteres.
12
Metacaracteres ! - exclamación: Negar el siguiente caracter o expresión regular. ? - pregunta: Coincidir 0 o 1 vez. * - asterisco: Coincidir 0 o más veces. + - suma: Coincidir 1 or más veces. {n} - n entre corchetes: Coincidir exactamente n veces. {n,} - n, entre corchetes: Coincidir n o más veces. {,n} - ,n entre corchetes: Coincidir n o menos veces. {n,m} - n,m entre corchetes: Coincidir al menos n veces pero no más de m.
13
Código de colores utilizado en los ejemplos:
Loop Studio. - String a la cual aplicamos la regex. regex - expresión regular (rojo) match - coincidencia en el String analizado (verde)
14
/o/ - un caracter específico: Loop Studio.
/op/ - una secuencia de caracteres: Loop Studio. /\./ - con escapeo de metacaracteres: Loop Studio. /./ - sin escapeo de metacaracteres: Loop Studio.
15
Conjuntos de caracteres:
Cualquiera de las dos: /[ot]/ - coincide con uno de varios caracteres: Loop Studio. segunda, tercera y cuarta coincidencia: Loop Studio. /St[ua]dio/ - coincide con Studio y Stadio: Loop Stadio. /[0-9]/ - coincide con un rango de caracteres: ID3735. /#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/ coincide con los colores en hexadecimal, ej: #ec4858. /S[^a]/ - se niega un conjunto de caracteres: Loop Studio. /[^0-9]/ - niega los dígitos: RD3735. “u” “St” “dio” “a”
16
Caracteres Taquigráficos:
/\d/ - coincide con cualquier dígito: ID3735. /\s/ - coincide con espacios en blanco(espacios, tabs, saltos de línea) : Loop Studio. /\w/ - coincide con un "word character" (caracteres alfanuméricos y guión bajo) : Loop Studio. /\s\w/ - coincide con un espacio seguido de un “word character”: Loop_Studio.
17
Caracteres especiales:
/\t/ - coincide con un caracter de tipo tab (ASCII 0x09) /\r/ - coincide con un retorno de carro (carriage return - ↵) (0x0D) /\n/ - coincide con un salto de línea (0x0A) /\r\n/ - coincide con un fin de línea en Windows /\x5E/ - coincide con un caracter específico por su índice hexadecimal en en el conjunto de caracteres (character set), por ej: intercalación ^
18
Caracteres especiales: ANCHORS
Los Anchors no matchean con ningún caracter, matchean con una posición dentro de una cadena de caracteres. /^/ - coincide con el comienzo de una cadena de caracteres: |Loop Studio. /$/ - coincide con el final de una cadena de caracteres: Loop Studio.| /\b/ - coincide con el inicio o fin de una cadena de caracteres: |Loop Studio. Segunda coincidencia: Loop| Studio. Etc... /\B/ - coincide con cualquier posición en donde \b no coincide: L|oop Studio.
19
También se utilizan para funciones de búsqueda y reemplazo.
grupos y referencias: Propósito: Agrupar elementos para luego realizar referencias al mismo. /<([A-Z][A-Z0-9]*)\b[^>]*>.*?</\1>/ : Se requiere del mismo grupo entre < > al comienzo y al final. <h1>hola</h1> También se utilizan para funciones de búsqueda y reemplazo.
20
Ejemplo completo:
21
Ejercicio
22
Posible Solución: /[#]+[\w\x80-\xFF]+/
23
para Mas Información visitar:
24
Pueden encontrarme en:
Gracias! ¿Preguntas? Pueden encontrarme en: skype: elestuskype
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.