Skip to content

Instantly share code, notes, and snippets.

@JhonWilderParionaVilca
Last active January 26, 2023 20:30
Show Gist options
  • Save JhonWilderParionaVilca/5055a03fdb31aa04a590621b44a17714 to your computer and use it in GitHub Desktop.
Save JhonWilderParionaVilca/5055a03fdb31aa04a590621b44a17714 to your computer and use it in GitHub Desktop.
🏆 Learning EXPRESIONES REGULARES REGEX

REGEX_VALID_NAME

solo letras y espacios sin numeros

/^[a-zA-Z\s]*$/

🔥 Expresiones regulares

📎 udemy

  • ^ (acento circunflejo) inicio de la linea
  • $ fin de línea
  • . cualquier carácter,..
  • \. agrega un .
  • [ae] en ese sitio puede estar opcional mente la a o e.

ejemplo

c[aei]s[ao] (esto se debe de cumplir en cualquier parte de la palabra ya q no definimos el inicio ^ y el fin$) se lee obligatoria mente debe de haber una c, luego puede haber una a,e o i opcional mente cualquiera y luego obligatoria mente una s y por ultimo de manera opcional una a o una o en esa posición: casa, caso, ceso, sucesor,..

  • [:alnum:] conjunto de letras y dígitos
  • [:alpha:] conjunto de letras
  • [:blanck:] conjunto de espacios en blanco
  • [:cntrl:] conjunto de caracteres de control
  • [:space:] conjunto espacios en blanco verticales y horizontales
  • [:graph:] conjunto de caracteres imprimibles sin incluir espacio blanco.
  • [:print:] conjunto de caracteres imprimibles incluyendo espacio en blanco
  • [:digit:] conjunto de digitos
  • [:lower:] conjunto de letras minusculas
  • [:upper:] conjunto de letras mayúsculas

ejemplo: sacar todos las palabras que empiecen en minusculas

"^[[:lower:]]" es recomendable poner las comillas en nuestras expresiones regulares.

  • [:punct:] conjunto signos de puntuación
  • [:xdigit:] conjunto de digitos hexadecimales
  • [^ ] exclusion del conjunto de caracteres

obtener las palabras exepto las q lleven los sgtes caracteres

"c[^aei]s[^ao]" seleccionar todas las palabras q en alguna parte tengan una c obligatoriamente despues tengan cualquier letra exceepto la a,e e i y luego q tenga obligatoriamente la s y luego q tenga cualquier letra excepto la a y o. cose, cusi, ...

  • [ - ] indica valores intermedios de un inicio a un fin

"[a-d]" es lo mismo que "[abcd]"

Expresiones extendidas(en linux usarlo con grep --color -E "expresion regular")

  • X* el caracter de la izquierda se puede repetir 0 o más veces
  • X? El caracter de la izquierda puede aparecer cero o 1 vez
  • X+ El caracter de la izquierda se repite 1 o mas veces
  • X{n} El caracter de la izquierda se repite n veces exactas
  • X{n,} El caracter de la izquierda se repita n o mas veces
  • X{,n} El caracter de la izquierda se repita cero y a lo sumo n veces
  • X{n,m} El caracter de la izquierda se repita al menos n veces y a lo mucho m veces

Ejemplo "^[h-q]{8}" busca todas las palabras de 8 letras que tengan letras entre la h y la q : homónimo, pimpollo, piojillo, ...

Alternativas

  • | dar por buena cualquiera de las dos expresiones regulares dadas

"^a.*t$ | ^e.*x$" que empice por a y haya un numero indeterminado de caracteres y termine en t o empiece en e que haya cualquier cantidad de caracteres y termine en x

  • () agrupación

"(c[aeiou]){2}" de que la palabra tenga una c con una vocal y que esto se repita 2 veces seguidas : zorcico, zamacuco,..

Abreviaturas

  • \w cualquier caracter alfanumerico y el guión bajo
  • ``\W lo contrario de \w, es decir signos de puntuación, espacios, ...

Limites

  • \< inicio de una palabra

Ejemplo "la[[:alpha:]]*" me traia las, blancas, alas, clamor... pero si ahora "<la[[:alpha:]]*" solo traeria las palabras q empiecen desde la como: las, la, lamor

  • \> fin de palabra
  • \b limite de palabra(inico y fin)

usando sed de linux podemos hacerlo sed -r "s/\b/|/g" fichero.txt sustitue(s/) los inicosy fin de palabras(\b) por un tabulador(/b) varias veces(/g)

  • \B lo contrario a \b

REFERENCIAS Capicuas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment