Como nuevo desarrollador, las expresiones regulares (o regex, como se las conoce comúnmente), pueden ser desalentadoras debido a la sintaxis extraña y desconocida: & nbsp; & nbsp; & nbsp;
Cuando era un desarrollador nuevo y vi la expresiòn anterior por primera vez, recuerdo que mi primer pensamiento fue " ¿qué dices? Nunca podré aprender ese galimatìas. Eso es demasiado para mì. No puedo hacerlo. "
¬°Pero t√∫ puedes! Es sòlo cuestiòn de superar esa abrumadora sensaciòn inicial de que las expresiones regulares son demasiado extra√±as. Al igual que aprender o hablar un idioma extranjero & mdash; una vez que lo domine, será bastante natural. ¬°Lo prometo!
En este artìculo, echamos un vistazo a qué son las expresiones regulares, por qué se usan y còmo usarlas en Python. Cuando termine este artìculo, tendrá un conocimiento sòlido de las expresiones regulares para que pueda interpretar lo que significa la expresiòn anterior.
¿Qué son las expresiones regulares? & Nbsp;
Cuándo Si echamos un vistazo a lo que es una expresiòn regular, necesitamos recordarnos qué es una cadena. Recuerde que una cadena es solo una colecciòn de caracteres que están encadenados y delimitados por un conjunto de comillas:
& ldquo ; Hola mundo " " 555-555-5555 " & nbsp; & nbsp; & nbsp; " John Doe 123 Main St. Anywhere, EE. UU. 99999-9999 " & nbsp; & nbsp; " [email protected]‚"
Estos son todos ejemplos de cadenas. Pueden tener cualquier longitud o ninguna. Las expresiones regulares, o más com√∫nmente abreviadas como regex , es una expresiòn cuyos componentes combinan patrones con cadenas para encontrar alg√∫n tipo de informaciòn.
El 81% de los participantes declarò se sintieron más seguros acerca de sus perspectivas laborales de tecnologìa después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.
El graduado promedio de bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.
¿Qué tiene de bueno las expresiones regulares? es que no necesariamente se preocupa por el idioma que está codificando en & mdash; es bastante independiente del lenguaje. La diferencia viene en los métodos del lenguaje y en còmo realizar acciones usando esas expresiones. & Nbsp;
¿Para qué se usan las expresiones regulares?
Regex es un patròn que nos gustarìa busque especìficamente en una cadena. Podemos usar expresiones regulares para buscar una frase o patròn en particular para reemplazarlo con otra cosa, o podemos validar formularios para estar seguros de que un usuario está ingresando informaciòn en un formato determinado para que sea consistente en todos los usuarios.
Buscar y reemplazar
Digamos, por ejemplo, que tenemos un n√∫mero de teléfono presentado en este formato:
555 555 5555
Este es un formato válido para un n√∫mero de teléfono en los Estados Unidos. Pero, ¿y si quisiéramos reemplazar los espacios con guiones? ¿O agregar paréntesis alrededor del còdigo de área y un guiòn para hacerlo más legible?
¬°Podemos usar expresiones regulares para eso! En la siguiente secciòn repasaremos còmo hacer eso con Python & mdash; por ahora, quiero que se familiarice con lo que puede hacer con las expresiones regulares y còmo pueden ser √∫tiles.
El resultado que verìamos después de buscar y reemplazar un n√∫mero de teléfono en Python para el formato que nos gustarìa usar serìa:
No hay necesidad de codificar o buscar un valor o ìndice especìfico de la cadena en expresiones regulares porque podemos simplemente buscar los patrones en las cadenas y manipular todos los registros que tenemos para hacer coincidir.
Validar
¿Alguna vez llenò algo en un sitio solo para que se muestre un mensaje de error debido a un sìmbolo perdido o un patròn que no siguiò? Lo más probable es que se hayan utilizado expresiones regulares para asegurarse de que su entrada coincida con lo que busca su base de datos.
Esto se llama validaciòn y es muy √∫til cuando se crean formularios para asegurarse de que un n√∫mero de teléfono sigue el formato en el que desea que esté o que una direcciòn de correo electrònico sea una direcciòn de correo electrònico formateada correctamente, o una contrase√±a coincida con los parámetros que ha establecido para que sea una contrase√±a válida (longitud, caracteres especiales, dìgitos, may√∫sculas o min√∫sculas , etc.). & nbsp;
Esto ayuda a prevenir errores en su base de datos al alertar al usuario sobre errores tipográficos o patrones no coincidentes. & nbsp;
En la siguiente secciòn, Echaremos un vistazo a los componentes o comparadores de patrones que construyen expresiones regulares.
Tipos de comparadores de patrones de expresiones regulares
Los caracteres literales, metacaracteres y cuantificadores hacen los tipos de coincidencias de patrones que vemos en las expresiones regulares. Un comparador de patrones es un carácter que se utiliza para ayudar a encontrar un patròn en una cadena. Es el componente principal de una expresiòn regular.
Caracteres literales
El ejemplo más básico de un comparador de patrones en expresiones regulares es un carácter literal. Coincide con un carácter o una cadena codificados de forma rìgida.
Ejemplos: & nbsp;
hola
& rArr; colecciòn de cinco caracteres distintos.
Cuando se aplica un patròn de expresiòn regular aquì, busca cada uno de estos caracteres en sucesiòn. " hola & rdquo ;, " hola & rdquo ;, o " hola " aprobarìa una verificaciòn de patròn, pero "Hola", "hola" o "Hola" no lo harìa.
"Career Karma entrò en mi vida cuando más lo necesitaba y rápidamente me ayudò a combinar con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sue√±os que se alineaba con mis valores y objetivos en la vida! "
Venus, ingeniero de software de Rockbot
A
& rArr; colecciòn de un carácter distinto.
Debido a que la expresiòn regular busca caracteres distintos, también distingue entre may√∫sculas y min√∫sculas. Entonces " A " pasarìa, pero " a " no lo harìa. Entraremos más en esto en un momento. & Nbsp;
Una oraciòn simple
. & rArr; colecciòn de varios caracteres distintos.
Regex busca cada carácter en la expresiòn en sucesiòn cuando mira una cadena. Si " Una oraciòn simple " no está en la cadena buscada exactamente como está escrito en la expresiòn regular, no pasarìa.
Caracteres de escape
Eche un vistazo al √∫ltimo ejemplo. Observe que hay un frente al perìodo. Un punto en la sintaxis de expresiòn regular es sinònimo de palabras clave en lenguajes como JavaScript o Python.
No puede utilizar un punto / punto por sì solo si desea que forme parte de un patròn en expresiones regulares. Debe escapar del carácter para que el motor de expresiones regulares lo interprete como una representaciòn literal de un punto en lugar del significado de la expresiòn regular. & Nbsp;
Aquì hay algunas otras secuencias especiales de caracteres que debe tener un escape si desea el carácter literal en lugar del significado traducido en el que el motor de expresiones regulares lo compila.
- Asterisco *
- Barra invertida /
- Más +
- Caret ^
- Signo de dòlar $
- Punto / punto.
- Pipe |
- Pregunta Mark?
- Paréntesis & ndash; ambos tipos ()
- Curly Braces & ndash; ambos tipos {}
Los caracteres literales en expresiones regulares coinciden exactamente con el carácter que incluye como parte del patròn. Si desea incluir un carácter que aparece en la lista anterior, aseg√∫rese de evitarlo para que también pueda ser parte de su expresiòn regular.
Coincidencias comunes
El propòsito de una matcher es hacer coincidir varias letras en un patròn. Esta colecciòn de sìmbolos de coincidencia de patrones es bastante consistente entre los lenguajes de programaciòn que usan expresiones regulares.
Coincidencia | Descripciòn | Ejemplo |
. | Coincide con cualquier carácter | nw coincidirìa con ahora, naw o nuevo , etc. Cualquier carácter pasa la prueba |
^ regex | Busca patròn en principio de la lìnea | ^ hola coincidirìa con hola en una lìnea que comenzara con ese patròn |
regex $ | Busca patròn al final de la lìnea | world $ coincidirìa con world en una lìnea que terminara con ese patròn |
[abc] | Coincidencias a, b o c & nbsp; | [misp] se considera un conjunto y coincidirìa con cualquier cadena que contenga alguno de esos caracteres. & nbsp; Por ejemplo, podrìa coincidir con todas las letras individuales de mississippi y mississippi, pero solo algunas de las letras de marsh y missouri |
[abc] [xyz] | Matc Hes a, b, oc seguido de x, y, o z | / [Mm] [sip] / coincidirìa con cualquier cadena que comience con M om, seguido de un conjunto que tenga cualquiera de los caracteres en [sip] |
[^ abc] | No a, b, o c | [^ rstlne] coincidirìa cualquier carácter que no sea r, s, t, l, n o e |
[a-zA-Z0-9] | Coincide con cualquier carácter dentro del rango | [an] coincidirìa con cualquier carácter entre a y n. y, end, blind, can , todos tienen caracteres que coinciden completamente aquì |
A | B | A o B | M | m. coincidirìa con cualquier palabra o frase de al menos dos caracteres de longitud que coincida con una M o una m más al menos uno o más caracteres. |
CAT | Coincide con C, seguido de A, seguido de T | hola mundo coincidirìa con hola mundo exactamente |
Metacaracteres
Las expresiones regulares también usan metacaracteres para describir un patròn. Los metacaracteres tienen alg√∫n tipo de significado detrás de ellos y describirán la forma del patròn.
Metacarácter | Descripciòn | Ejemplo |
d | Coincide con cualquier dìgito | d coincidirìa con 1, 2 o 3, etc. Abreviatura de [0-9] |
D | Coincide con cualquier carácter que no sea un dìgito | D coincidirìa con A, B, g, etc. Abreviatura de [^ 0-9] & nbsp; |
s | Coincide con cualquier espacio en blanco carácter | s coincidirìa con nuevas lìneas, tabulaciones, espacios, etc. & nbsp; |
S | Coincide con cualquier -Carácter de espacio en blanco & nbsp; | S coincidirìa con cualquier carácter excepto con un carácter de espacio en blanco. & nbsp; |
w | Coincide con cualquier carácter de palabra | Un carácter de palabra, abreviatura de [a-zA-Z_0-9] |
W | Coincide con cualquier carácter que no sea de palabra | [W] coincidirìa con cualquier carácter especial. Abreviatura de [^ w] |
Nota : Los metacaracteres de letras may√∫sculas (W, D, etc.) suelen corresponder al contrario de qué hacen los metacaracteres de letras min√∫sculas (w, d, etc.). & nbsp;
Cuantificadores
Cuantificador | Descripciòn | Ejemplo |
+ | Uno o más del carácter anterior | d + coincidirìa con dos o más dìgitos |
* | Cero o más del carácter anterior | . * coincidirìa con cualquier carácter 0 veces o más & nbsp; Nota: ¬°Técnicamente, una cadena vacìa cumplirìa esta expresiòn regular! |
? | Cero o uno de los el carácter anterior | a?. * coincidirìa con a, any, hello, world & nbsp; |
{number} | Coincide exactamente con el carácter anterior n√∫mero de veces & nbsp; | d {3} coincide exactamente con tres dìgitos [0-9] |
{num1, num2} | Coincide con el carácter anterior en un rango de n√∫meros | d {3,5} coincide con 3 a 5 dìgitos que son [0-9] |
Utilice los cuantificadores, metacaracteres y otros comparadores como los bloques de construcciòn para sus expresiones regulares. La sintaxis mencionada aquì es similar en varios lenguajes que usan expresiones regulares.