Ejemplos básicos
Encontrar cadena que... | regex | seleccionar |
---|---|---|
inicia con +56 |
^+56 |
+5694444565 |
termina con 55 |
55$ |
23423455 |
Inicia con 56 (^56 ) seguido de 7 dígitos entre 0 y 9 ([0-9]{7} ) y finaliza con 45 (45$ ) |
^56[0-9]{7}45$ |
569444545 |
Es un string de 8 dígitos | ^[0-9]{8}$ |
|
Inicia con 9 (^9 ) seguido de 8 dígitos entre cero y nuevo ([0-9]{8} ) y nada mas ($ ) |
^9[0-9]{8}$ |
|
Inicia con 569 (^569 ) seguido de 8 dígitos entre cero y nuevo ([0-9]{8} ) y nada mas ($ ) |
^569[0-9]{8}$ |
|
Inicia con +569 (^\+569 ) seguido de 8 dígitos entre cero y nuevo ([0-9]{8} ) y nada mas ($ ). El signo + debe ser escapado con un backslash. |
^\+569[0-9]{8}$ |
|
Uno o mas digitos | [0-9]+ |
|
Un punto [.] seguido de 2 o 3 letras [a-z]{2,3} , una o mas veces + sin nada despues $ |
([.]{2,3})+$ |
.com.au .org.cl .cl.fr |
Obtener todas las cadenas que inician con http seguido de cualquier caracter (. ) con una o mas ocurrencias (+ ) hasta el primer espacio ([^\s] ) |
http.[^\s]+ |
Grupos
En una misma expresión podemos crear subgrupos para facilitar su manejo posterior. En algunos lenguajes nos sera útil recibir las ocurrencias de la cadena que buscamos en un array por ejemplo y a su ves este array puede contener subgrupos de cadenas.
Supongamos que queremos buscar TODAS la correncias de la siguiente cadena en un párrafo [book1](http://web.com). Y necesitamos usar lo que esta dentro de los []
y lo que esta dentro de los ()
por separado, quizás nos seria de utilidad recibir las ocurrencias ya separadas.
Expresión regular sin agrupar, podríamos usar la siguiente \[.[^\)]{1,}\)
. Dependiendo del lenguaje, podemos obtener un array con algo como esto
// Ejemplo usando
const arrayResult = string.match(/\[.[^\)]{1,}\)/g);
// output
[
"[this book](https://codigo.com)",
"[this book 2](https://pagina2.com)"
]
Expresión regular agrupada, usamos paréntesis redondos para definir los grupos, podríamos usar la siguiente ([.[^)]{1,}])((.[^)]{1,}))
. Dependiendo del lenguaje, podemos obtener un array con algo como esto
// Ej en nodejs
const arrayResult = [...string.matchAll(/(\[.[^\)]{1,}\])(\(.[^\)]{1,}\))/g)]
// ([.[^)]{1,}])((.[^)]{1,}))
// Grupo 1 => ([.[^)]{1,}])
// Grupo 1 => ((.[^)]{1,}))
[
[
'[this book](https://codigo.com)',
'[this book]',
'(https://codigo.com)',
index: 0,
input: '[this book](https://codigo.com) and some text. [book2](https://codigo2.com) more text.',
groups: undefined
],
[
'[book2](https://codigo2.com)',
'[book2]',
'(https://codigo2.com)',
index: 47,
input: '[this book](https://codigo.com) and some text. [book2](https://codigo2.com) more text.',
groups: undefined
]
]
Cada elemento del array contiene
- La selección completa
- El grupo 1
- El grupo 2
- Y luego información extra