Diferencia entre revisiones de «Expresiones regulares»

De mobeleader
Ir a la navegación Ir a la búsqueda
 
(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 - 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.