Github : https://github.com/ydmarinb
Expresión regular, también conocida como regex, regexp o expresión racional, es una secuencia de caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones.
Las expresiones regulares se construyen utilizando los operadores unión, concatenación y clausura de Kleene.
La clausura de Kleene : es una operación que se aplica sobre un conjunto de cadenas de caracteres o un conjunto de símbolos o caracteres, y representa el conjunto de las cadenas que se pueden formar tomando cualquier número de cadenas del conjunto inicial, posiblemente con repeticiones, y concatenándolas entre sí.
Un Cuatinficardor que precede a un caracter cuantifica las veces que este caracter puede aparecer.
? El caracter que precede puede aparecer como mucho una vez.+ El carácter que le precede debe aparecer al menos una vez.* El carácter que le precede puede aparecer cero, una, o más veces.{} Las llaves juegan el papel de meta caracteres, para que cumplan su funcionalidad deben estar despues de la expresión regular y encierren uno o varios números.
{n} Indica que coincide n veces.{n,} Indica que coincide mas n veces.{,n} Indica que coincide hasta n veces.{n,m} Indica que coincide mas n veces y menos de m veces.$ El signo de dolar representa el final de la cadena de caracteres o el final de la línea.
^ El acento representa el inicio de la cadena.
() Los parentesis son usados para la aplicación de operadores sobre mas de un caracter.
[] Los corchetes agrupan caracteres en grupos o clases. Son útiles cuando es necesario buscar uno de un grupo de caracteres.
[a-z] Especifica un rango de caracteres.[^.... ] Lista de caracteres excluidos| Una barra vertical separa las alternativas. Realiza el papel de o.
. El punto busca cualquier carácter sin incluir los saltos de línea.
Se utiliza para escapar el siguiente carácter de la expresión de búsqueda de forma que este adquiera un significado especial o deje de tenerlo.
\a — Representa una “campana” o “beep” que se produce al imprimir este carácter.\e — Representa la tecla “Esc” o “Escape”
\x — Se utiliza para representar caracteres ASCII o ANSI si conoce su código. De esta forma, si se busca el símbolo de derechos de autor y la fuente en la que se busca utiliza el conjunto de caracteres Latin-1 es posible encontrarlo utilizando “9”.\d — Representa un dígito del 0 al 9.\w — Representa cualquier carácter alfanumérico.\s — Representa un espacio en blanco.\D — Representa cualquier carácter que no sea un dígito del 0 al 9.\W — Representa cualquier carácter no alfanumérico.\S — Representa cualquier carácter que no sea un espacio en blanco.\A — Representa el inicio de la cadena. No un carácter sino una posición.\Z — Representa el final de la cadena. No un carácter sino una posición.\b — Marca la posición de una palabra limitada por espacios en blanco, puntuación o el inicio/final de una cadena.\B — Marca la posición entre dos caracteres alfanuméricos o dos no-alfanuméricos.
! El signo de admiración representa una busqueda negativa, en otras palabras que no incluya la palabra que especificamos.\t — Representa un tabulador.\r — Representa el “retorno de carro” o “regreso al inicio” o sea el lugar en que la línea vuelve a iniciar.\n — Representa la “nueva línea” el carácter por medio del cual una línea da inicio.\f — Representa un salto de página\v — Representa un tabulador verticalstring <- c("R es el mejor lenguaje", " Es un lenguaje vectorizado",
" Es muy bueno en analítica")
patron <- '(R|lenguaje)'# Da la posición de las fraces que contienen el patron
grep(pattern = patron, string) ## [1] 1 2
# Extrae las oraciones que contienen el patron
grep(pattern = patron, string, value = T)## [1] "R es el mejor lenguaje" " Es un lenguaje vectorizado"
# valores logicos
grepl(pattern = patron, string)## [1] TRUE TRUE FALSE
stringr::str_detect(pattern = patron, string)## [1] TRUE TRUE FALSE
strsplit(string, patron)## [[1]]
## [1] "" " es el mejor "
##
## [[2]]
## [1] " Es un " " vectorizado"
##
## [[3]]
## [1] " Es muy bueno en analítica"
stringr::str_split(string, patron)## [[1]]
## [1] "" " es el mejor " ""
##
## [[2]]
## [1] " Es un " " vectorizado"
##
## [[3]]
## [1] " Es muy bueno en analítica"
stringr::str_locate(string , patron)## start end
## [1,] 1 1
## [2,] 8 15
## [3,] NA NA
stringr::str_locate_all(string , patron)## [[1]]
## start end
## [1,] 1 1
## [2,] 15 22
##
## [[2]]
## start end
## [1,] 8 15
##
## [[3]]
## start end
# Extraer solo las primeras coincidencias
regmatches(string, regexpr(patron, string))## [1] "R" "lenguaje"
#Extraer todas las conincidencias
regmatches(string, gregexpr(patron, string))## [[1]]
## [1] "R" "lenguaje"
##
## [[2]]
## [1] "lenguaje"
##
## [[3]]
## character(0)
# Extraer solo las primeras coincidencias
stringr::str_extract(string , patron)## [1] "R" "lenguaje" NA
# Extraer solo las primeras coincidencias en una lista
stringr::str_extract_all(string , patron)## [[1]]
## [1] "R" "lenguaje"
##
## [[2]]
## [1] "lenguaje"
##
## [[3]]
## character(0)
# Extraer solo las primeras coincidencias en una matriz
stringr::str_extract_all(string , patron, simplify = T)## [,1] [,2]
## [1,] "R" "lenguaje"
## [2,] "lenguaje" ""
## [3,] "" ""
# Reemplaza la primera coincidencia
sub(patron, c("python"), string)## [1] "python es el mejor lenguaje" " Es un python vectorizado"
## [3] " Es muy bueno en analítica"
# Reemplaza todas las coincidencias
gsub(patron, c("python"), string)## [1] "python es el mejor python" " Es un python vectorizado"
## [3] " Es muy bueno en analítica"
# Reemplaza la primera coincidencia
stringr::str_replace(string, patron, "python")## [1] "python es el mejor lenguaje" " Es un python vectorizado"
## [3] " Es muy bueno en analítica"
# Reemplaza todas las coincidencias
stringr::str_replace_all(string, patron, "python")## [1] "python es el mejor python" " Es un python vectorizado"
## [3] " Es muy bueno en analítica"