Saltar a: navegación, buscar

Diferencia entre revisiones de «Expresiones regulares»


m (Rangos)
m (Rangos)
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 9: Línea 9:
 
   * '''*''' asterisco (una o ninguna vez)
 
   * '''*''' asterisco (una o ninguna vez)
 
   * '''.''' Punto (cualquier caracter)
 
   * '''.''' Punto (cualquier caracter)
   * '''^''' circumflejo (principio de la cadena o negar caragteres)
+
   * '''^''' circumflejo (principio de la cadena o negar carácteres)
 
   * '''$''' dolar (final de la cadena)
 
   * '''$''' dolar (final de la cadena)
 
   * '''?''' interrogante cerrado (un caracter)
 
   * '''?''' interrogante cerrado (un caracter)
Línea 26: Línea 26:
 
   * '''/[^a-z]/''' El simbolo ^ es el de negación. Esto es decir, TODO MENOS las letras minusculas.
 
   * '''/[^a-z]/''' El simbolo ^ es el de negación. Esto es decir, TODO MENOS las letras minusculas.
 
   * '''/[^0-9]/''' Todo menos los numeros.
 
   * '''/[^0-9]/''' Todo menos los numeros.
 +
 +
<br />
 +
 +
{| style="width: 100%"
 +
! style="padding: 2px; font-weight: bold" | POSIX
 +
! style="padding: 2px" | Descripción
 +
! style="padding: 2px" | ASCII
 +
! style="padding: 2px" | Unicode
 +
! style="padding: 2px" | Shorthand
 +
! style="padding: 2px" | Java
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:alnum:]
 +
| style="padding: 2px; background-color: #eff0ef" | Letras y números
 +
| style="padding: 2px; background-color: #eff0ef" | [a-zA-Z0-9]
 +
| style="padding: 2px; background-color: #eff0ef" | [\p{L}\p{Nl}\p{Nd}]
 +
| style="padding: 2px; background-color: #eff0ef" |
 +
| style="padding: 2px; background-color: #eff0ef" | \p{Alnum}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:alpha:]
 +
| style="padding: 2px; background-color: #fafafa" | Solo letras
 +
| style="padding: 2px; background-color: #fafafa" | [a-zA-Z]
 +
| style="padding: 2px; background-color: #fafafa" | \p{L}\p{Nl}
 +
| style="padding: 2px; background-color: #fafafa" |
 +
| style="padding: 2px; background-color: #fafafa" | \p{Alpha}
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:ascii:]
 +
| style="padding: 2px; background-color: #eff0ef" | Caracteres ASCII
 +
| style="padding: 2px; background-color: #eff0ef" | [\x00-\x7F]
 +
| style="padding: 2px; background-color: #eff0ef" | \p{InBasicLatin}
 +
| style="padding: 2px; background-color: #eff0ef" |
 +
| style="padding: 2px; background-color: #eff0ef" | \p{ASCII}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:blank:]
 +
| style="padding: 2px; background-color: #fafafa" | Espacio y tabulación
 +
| style="padding: 2px; background-color: #fafafa" | [ \t]
 +
| style="padding: 2px; background-color: #fafafa" | [\p{Zs}\t]
 +
| style="padding: 2px; background-color: #fafafa" | \h
 +
| style="padding: 2px; background-color: #fafafa" | \p{Blank}
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:cntrl:]
 +
| style="padding: 2px; background-color: #eff0ef" | Caracteres de control
 +
| style="padding: 2px; background-color: #eff0ef" | [\x00-\x1F\x7F]
 +
| style="padding: 2px; background-color: #eff0ef" | \p{Cc}
 +
| style="padding: 2px; background-color: #eff0ef" |
 +
| style="padding: 2px; background-color: #eff0ef" | \p{Cntrl}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:digit:]
 +
| style="padding: 2px; background-color: #fafafa" | Dígitos
 +
| style="padding: 2px; background-color: #fafafa" | [0-9]
 +
| style="padding: 2px; background-color: #fafafa" | \p{Nd}
 +
| style="padding: 2px; background-color: #fafafa" | \d
 +
| style="padding: 2px; background-color: #fafafa" | \p{Digit}
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:graph:]
 +
| style="padding: 2px; background-color: #eff0ef" | Caracteres visibles<br />(todo excepto espacios<br />y caracteres de control)
 +
| style="padding: 2px; background-color: #eff0ef" | [\x21-\x7E]
 +
| style="padding: 2px; background-color: #eff0ef" | [^\p{Z}\p{C}]
 +
| style="padding: 2px; background-color: #eff0ef" |
 +
| style="padding: 2px; background-color: #eff0ef" | \p{Graph}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:lower:]
 +
| style="padding: 2px; background-color: #fafafa" | Letras en minúsculas
 +
| style="padding: 2px; background-color: #fafafa" | [a-z]
 +
| style="padding: 2px; background-color: #fafafa" | \p{Ll}
 +
| style="padding: 2px; background-color: #fafafa" | \l
 +
| style="padding: 2px; background-color: #fafafa" | \p{Lower}
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:print:]
 +
| style="padding: 2px; background-color: #eff0ef" | Caracteres visibles y espacios<br />(todo excepto caracteres de control)
 +
| style="padding: 2px; background-color: #eff0ef" | [\x20-\x7E]
 +
| style="padding: 2px; background-color: #eff0ef" | \P{C}
 +
| style="padding: 2px; background-color: #eff0ef" |
 +
| style="padding: 2px; background-color: #eff0ef" | \p{Print}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:punct:]
 +
| style="padding: 2px; background-color: #fafafa" | Puntuación (y símbolos).
 +
| style="padding: 2px; background-color: #fafafa" | [!"\#$%&'()*+,\-./:;<=>?@\[\\\]^_`{|}~]
 +
| style="padding: 2px; background-color: #fafafa" | \p{P}
 +
| style="padding: 2px; background-color: #fafafa" |
 +
| style="padding: 2px; background-color: #fafafa" | \p{Punct}
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:space:]
 +
| style="padding: 2px; background-color: #eff0ef" | Todos los caracteres de espacio<br />incluyendo saltos de línea
 +
| style="padding: 2px; background-color: #eff0ef" | [ \t\r\n\v\f]
 +
| style="padding: 2px; background-color: #eff0ef" | [\p{Z}\t\r\n\v\f]
 +
| style="padding: 2px; background-color: #eff0ef" | \s
 +
| style="padding: 2px; background-color: #eff0ef" | \p{Space}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:upper:]
 +
| style="padding: 2px; background-color: #fafafa" | Letras mayúsculas
 +
| style="padding: 2px; background-color: #fafafa" | [A-Z]
 +
| style="padding: 2px; background-color: #fafafa" | \p{Lu}
 +
| style="padding: 2px; background-color: #fafafa" | \u
 +
| style="padding: 2px; background-color: #fafafa" | \p{Upper}
 +
|-
 +
| style="padding: 2px; background-color: #eff0ef; font-weight: bold" | [:word:]
 +
| style="padding: 2px; background-color: #eff0ef" | Palabras<br />(letras, números y guiones bajos)
 +
| style="padding: 2px; background-color: #eff0ef" | [A-Za-z0-9_]
 +
| style="padding: 2px; background-color: #eff0ef" | [\p{L}\p{Nl}\p{Nd}\p{Pc}]
 +
| style="padding: 2px; background-color: #eff0ef" | \w
 +
| style="padding: 2px; background-color: #eff0ef" | \p{IsWord}
 +
|-
 +
| style="padding: 2px; background-color: #fafafa; font-weight: bold" | [:xdigit:]
 +
| style="padding: 2px; background-color: #fafafa" | Dígitos hexadecimales
 +
| style="padding: 2px; background-color: #fafafa" | [A-Fa-f0-9]
 +
| style="padding: 2px; background-color: #fafafa" | [A-Fa-f0-9]
 +
| style="padding: 2px; background-color: #fafafa" |
 +
| style="padding: 2px; background-color: #fafafa" | \p{XDigit}
 +
|}
 +
Más información en: https://www.regular-expressions.info/posixbrackets.html
 +
<br />
  
 
== Comodines y abreviaturas ==
 
== Comodines y abreviaturas ==
  
   * **\w** para indicar word (alfanumericos y _)
+
   * '''\w''' para indicar word (alfanumericos y _)
   * **\W** para indicar lo opuesto al word.
+
   * '''\W''' para indicar lo opuesto al word.
   * **\s** para concordar con los caracteres los espacios y otros caracteres en blanco (\t \n \r y espacio)
+
   * '''\s''' para concordar con los caracteres los espacios y otros caracteres en blanco (\t \n \r y espacio)
   * **\S** para lo contrario a \s
+
   * '''\S''' para lo contrario a \s
   * **\d** para concordar con un digito
+
   * '''\d''' para concordar con un digito
   * **\D** para lo contrario al \d
+
   * '''\D''' para lo contrario al \d
   * **\A** para empezar a mirar por el principio del string
+
   * '''\A''' para empezar a mirar por el principio del string
   * **\Z** para empezar a mirar por el final de string
+
   * '''\Z''' para empezar a mirar por el final de string
   * **\b** concuerda con las "word boundaries" los limites de palabra
+
   * '''\b''' concuerda con las "word boundaries" los limites de palabra
   * **\B** lo opuesto a \b
+
   * '''\B''' lo opuesto a \b
  
 
== Modificadores ==
 
== Modificadores ==
Línea 44: Línea 155:
 
Ejemplo: '/[a-z]/i' (busca caracteres sin distinguir mayúsuclas de minúsculas)
 
Ejemplo: '/[a-z]/i' (busca caracteres sin distinguir mayúsuclas de minúsculas)
  
   * **g** global reemplaza TODAS las ocurrencias en el texto.
+
   * '''g''' global reemplaza TODAS las ocurrencias en el texto.
   * **i** insensitive, es para evitarnos problemas con la capitalizacion. A = a
+
   * '''i''' insensitive, es para evitarnos problemas con la capitalizacion. A = a
   * **o** interpola, variables solo una vez
+
   * '''o''' interpola, variables solo una vez
   * **m** multiples, lineas Acepta strings de varias lineas
+
   * '''m''' multiples lineas, acepta strings de varias lineas
   * **s** single line, solo mira el string de una linea.
+
   * '''s''' single line, solo mira el string de una linea.
   * **x** extensiones, permite usar extensiones de expresion regular.
+
   * '''x''' extensiones, permite usar extensiones de expresion regular.

Revisión actual del 09:01 19 oct 2018

Carácteres especiales

Estos caracteres deberán ir protegidos en caso de que no se quieran expandir.

 * [ ] corchetes (para generar rangos)
 * () parentesis (agrupa bloques de correlaciones)
 * {} llaves (contiene la cantidad de veces)
 * - guión (especifica rangos)
 * + más (al menos una vez)
 * * asterisco (una o ninguna vez)
 * . Punto (cualquier caracter)
 * ^ circumflejo (principio de la cadena o negar carácteres)
 * $ dolar (final de la cadena)
 * ? interrogante cerrado (un caracter)
 * | tuberia unix (uno u otro valor)
 * \ barra invertida (se usa para tratar de forma normal un caracter especial)
 * / barra del 7 (para iniciar o finalizar una expresión regular)

Rangos

 * /[a-z]/ letras minúsculas
 * /[A-Z]/ letras mayúsculas
 * /[0-9]/ numeros
 * /[,'¿!¡;:\.\?]/ caracteres de puntuacion
 * /[A-Za-z]/ letras del alfabeto (del ingles claro ;)
 * /[A-Za-z0-9]/ todos los caracteres alfanumericos habituales. No incluyen acentos ni ñ
 * /[^a-z]/ El simbolo ^ es el de negación. Esto es decir, TODO MENOS las letras minusculas.
 * /[^0-9]/ Todo menos los numeros.


POSIX Descripción ASCII Unicode Shorthand Java
[:alnum:] Letras y números [a-zA-Z0-9] [\p{L}\p{Nl}\p{Nd}] \p{Alnum}
[:alpha:] Solo letras [a-zA-Z] \p{L}\p{Nl} \p{Alpha}
[:ascii:] Caracteres ASCII [\x00-\x7F] \p{InBasicLatin} \p{ASCII}
[:blank:] Espacio y tabulación [ \t] [\p{Zs}\t] \h \p{Blank}
[:cntrl:] Caracteres de control [\x00-\x1F\x7F] \p{Cc} \p{Cntrl}
[:digit:] Dígitos [0-9] \p{Nd} \d \p{Digit}
[:graph:] Caracteres visibles
(todo excepto espacios
y caracteres de control)
[\x21-\x7E] [^\p{Z}\p{C}] \p{Graph}
[:lower:] Letras en minúsculas [a-z] \p{Ll} \l \p{Lower}
[:print:] Caracteres visibles y espacios
(todo excepto caracteres de control)
[\x20-\x7E] \P{C} \p{Print}
[:punct:] Puntuación (y símbolos). [!"\#$%&'()*+,\-./:;<=>?@\[\\\]^_`{|}~] \p{P} \p{Punct}
[:space:] Todos los caracteres de espacio
incluyendo saltos de línea
[ \t\r\n\v\f] [\p{Z}\t\r\n\v\f] \s \p{Space}
[:upper:] Letras mayúsculas [A-Z] \p{Lu} \u \p{Upper}
[:word:] Palabras
(letras, números y guiones bajos)
[A-Za-z0-9_] [\p{L}\p{Nl}\p{Nd}\p{Pc}] \w \p{IsWord}
[:xdigit:] Dígitos hexadecimales [A-Fa-f0-9] [A-Fa-f0-9] \p{XDigit}

Más información en: https://www.regular-expressions.info/posixbrackets.html

Comodines y abreviaturas

 * \w para indicar word (alfanumericos y _)
 * \W para indicar lo opuesto al word.
 * \s para concordar con los caracteres los espacios y otros caracteres en blanco (\t \n \r y espacio)
 * \S para lo contrario a \s
 * \d para concordar con un digito
 * \D para lo contrario al \d
 * \A para empezar a mirar por el principio del string
 * \Z para empezar a mirar por el final de string
 * \b concuerda con las "word boundaries" los limites de palabra
 * \B lo opuesto a \b

Modificadores

Los modificadores se añaden tras el último delimitador de la expresión regular. Ejemplo: '/[a-z]/i' (busca caracteres sin distinguir mayúsuclas de minúsculas)

 * g global reemplaza TODAS las ocurrencias en el texto.
 * i insensitive, es para evitarnos problemas con la capitalizacion. A = a
 * o interpola, variables solo una vez
 * m multiples lineas, acepta strings de varias lineas
 * s single line, solo mira el string de una linea.
 * x extensiones, permite usar extensiones de expresion regular.