Regex basics [bases]
.
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.
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).
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]
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)
.
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://www.regular-expressions.info/
http://stackoverflow.com/questions/5319840/greedy-vs-reluctant-vs-possessive-quantifiers