iberck
5/5/2016 - 2:13 AM

Regex basics [bases]

Regex basics [bases]

Expresiones comúnes

. Hace match contra cualquier caracter menos los terminadores de línea.

abc: Hace match si encuentra una "a" seguida de "b" seguida de una "c".

(abc)+ "abc" una o más veces.

abc+: Hace match si encuentra una "a" seguida de "b" seguida de una o más "c".

jim|joe "jim" o "joe"

(jim)|(joe) "jim" o "joe"

'^(jim|joe)$' "jim" o "joe"

^hola: Hace match de la palabra "hola" siempre y cuando se encuentre al inicio de la cadena.

fin$: Hace match de la palabra "fin" siempre y cuando se encuentre al final de la cadena.

Clases de caracteres y rangos

Los corchetes [] sirven para representar un conjunto de caracteres llamados clases, siempre hacen match sobre 1 solo caracter y dentro de ellos se pueden definir rangos:

[abc]: "a" o "b" o "c"

[5-9]: "5" o "6" o "7" o "8" o "9"

[tT]: t o T

[a-d1-7]: Hace match de "a hasta d" o de "1 hasta 7"

[^abc]: Cualquier caracter que no sea "a, b, o c".

[^\s]: Cualquier caracter que no sea espacio.

[^bcr]: Cualquier caracter menos "b" o "c" o "r".

[abc][vz]: "a, b o c" seguido de "v o z".

[abc]+ "a" o "b" o "c" una o más veces cualquiera de ellas.

[1-5[4-9]]: unión (los valores de una clase más los valores de la otra).

[1-5&&[3-5]]: intersección (los valores que coinciden en ambas clases).

[1-6&&[^123]]: Sustracción (la clase de la izquierda menos los de la derecha).

Meta caracteres

Se les llama meta caracteres porque son abreviaturas de clases de caracteres.

\w Un caracter tipo palabra, abreviatura de [a-zA-Z_0-9]

\p{L} Cualquier caracter unicode, similar a \w pero incluye acentos.

\s Un caracter en blanco, abreviatura de [ \t\n\x0b\r\f]

\d Cualquier dígito, abreviatura de [0-9]

Las letras en mayusculas por convención representan negaciones:

\W Un caracter que no sea una letra: [^\w]

\S Un caracter que no sea un espacio en blanco: [^\s]

\D Un caracter que no sea un dígito: [^0-9]

Dot (punto)

El hace match contra cualquier caracter menos los saltos de línea. Para que el punto haga match también contra los saltos de línea, active el modo (?s).

Recursos y herramientas

Imágen de cómo realizar remplazos en regexbuddy

Imágen de cómo realizar splits regexbuddy

http://www.vogella.com/tutorials/JavaRegularExpressions/article.html

http://regexr.com/

http://www.regular-expressions.info/

http://stackoverflow.com/questions/5319840/greedy-vs-reluctant-vs-possessive-quantifiers