logo

Expresión regular (RegEx) en Python con ejemplos

A Expresión regular o RegEx es una secuencia especial de caracteres que utiliza un patrón de búsqueda para encontrar una cadena o un conjunto de cadenas.

Puede detectar la presencia o ausencia de un texto comparándolo con un patrón particular y también puede dividir un patrón en uno o más subpatrones.



Módulo Regex en Python

Python tiene un módulo incorporado llamado re que se utiliza para expresiones regulares en Python. Podemos importar este módulo usando la declaración de importación.

Ejemplo: Importando re módulo en Python

Python3








# importing re module> import> re>

>

>

¿Cómo utilizar expresiones regulares en Python?

Puede usar RegEx en Python después de importar el módulo re.

Ejemplo:

Este código Python utiliza expresiones regulares para buscar la palabra. portal en la cadena dada y luego imprime los índices inicial y final de la palabra coincidente dentro de la cadena.

Python3




import> re> > s>=> 'techcodeview.com: A computer science portal for geeks'> > match>=> re.search(r>'portal'>, s)> > print>(>'Start Index:'>, match.start())> print>(>'End Index:'>, match.end())>

>

>

Producción

Start Index: 34 End Index: 40>

Nota: Aquí el carácter r (r'portal') significa raw, no expresión regular. La cadena sin formato es ligeramente diferente de una cadena normal; no interpretará el carácter como un carácter de escape. Esto se debe a que el motor de expresiones regulares utiliza el carácter para su propio propósito de escape.

Antes de comenzar con el módulo de expresiones regulares de Python, veamos cómo escribir expresiones regulares usando metacaracteres o secuencias especiales.

Metacaracteres

Los metacaracteres son los caracteres con significado especial.

Para comprender la analogía de RE, los metacaracteres son útiles e importantes. Se utilizarán en funciones del módulo re. A continuación se muestra la lista de metacaracteres.

Metacaracteres

Descripción

Se utiliza para eliminar el significado especial del carácter que lo sigue.

cadena de ajuste java

[]

Representar una clase de personaje.

^

Coincide con el comienzo

$

Coincide con el final

.

Coincide con cualquier carácter excepto nueva línea

|

Significa OR (Coincide con cualquiera de los caracteres separados por él.

?

Coincide con cero o una ocurrencia

*

Cualquier número de ocurrencias (incluidas 0 ocurrencias)

+

Una o más ocurrencias

{}

Indique el número de apariciones de una expresión regular anterior para que coincida.

()

Adjuntar un grupo de Regex

Analicemos cada uno de estos metacaracteres en detalle:

1. – Barra invertida

La barra invertida () garantiza que el carácter no reciba un tratamiento especial. Esto puede considerarse una forma de escapar de los metacaracteres.

Por ejemplo, si desea buscar el punto (.) en la cadena, encontrará que el punto (.) se tratará como un carácter especial al igual que uno de los metacaracteres (como se muestra en la tabla anterior). Entonces, para este caso, usaremos la barra invertida () justo antes del punto (.) para que pierda su especialidad. Vea el siguiente ejemplo para una mejor comprensión.

Ejemplo:

la primera busqueda ( re.search(r'.', s)> ) coincide con cualquier carácter, no sólo el punto, mientras que la segunda búsqueda ( re.search(r'.', s)> ) busca y coincide específicamente con el carácter de período.

Python3




import> re> > s>=> 'geeks.forgeeks'> > # without using> match>=> re.search(r>'.'>, s)> print>(match)> > # using> match>=> re.search(r>'.'>, s)> print>(match)>

>

>

Producción

>

2. [] – Corchetes

Los corchetes ([]) representan una clase de caracteres que consta de un conjunto de caracteres que deseamos hacer coincidir. Por ejemplo, la clase de carácter [abc] coincidirá con cualquier a, b o c.

También podemos especificar un rango de caracteres usando – dentro de los corchetes. Por ejemplo,

  • [0, 3] es una muestra como [0123]
  • [a-c] es lo mismo que [abc]

También podemos invertir la clase de carácter usando el símbolo de intercalación (^). Por ejemplo,

  • [^0-3] significa cualquier número excepto 0, 1, 2 o 3
  • [^a-c] significa cualquier carácter excepto a, b o c

Ejemplo:

En este código, utiliza expresiones regulares para encontrar todos los caracteres de la cadena que se encuentran dentro del rango de 'a' a 'm'. El re.findall()> La función devuelve una lista de todos esos caracteres. En la cadena dada, los caracteres que coinciden con este patrón son: 'c', 'k', 'b', 'f', 'j', 'e', ​​'h', 'l', 'd', ' gramo'.

Python3




import> re> > string>=> 'The quick brown fox jumps over the lazy dog'> pattern>=> '[a-m]'> result>=> re.findall(pattern, string)> > print>(result)>

>

>

Producción

['h', 'e', 'i', 'c', 'k', 'b', 'f', 'j', 'm', 'e', 'h', 'e', 'l', 'a', 'd', 'g']>

3. ^ – intercalación

El símbolo de intercalación (^) coincide con el comienzo de la cadena, es decir, comprueba si la cadena comienza con los caracteres dados o no. Por ejemplo -

patrón de diseño del método de fábrica
  • ^g comprobará si la cadena comienza con g, como geeks, globo, niña, g, etc.
  • ^ge comprobará si la cadena comienza con ge, como geeks, geeksforgeeks, etc.

Ejemplo:

Este código utiliza expresiones regulares para comprobar si una lista de cadenas comienza con El . Si una cadena comienza con Está marcado como coincidente. de lo contrario, se etiqueta como No coinciden.

Python3




import> re> regex>=> r>'^The'> strings>=> [>'The quick brown fox'>,>'The lazy dog'>,>'A quick brown fox'>]> for> string>in> strings:> >if> re.match(regex, string):> >print>(f>'Matched: {string}'>)> >else>:> >print>(f>'Not matched: {string}'>)>

>

>

Producción

Matched: The quick brown fox Matched: The lazy dog Not matched: A quick brown fox>

4. $ – Dólar

El símbolo de dólar ($) coincide con el final de la cadena, es decir, comprueba si la cadena termina con los caracteres dados o no. Por ejemplo-

  • s$ buscará la cadena que termina con a, como geeks, termina, s, etc.
  • ks$ buscará la cadena que termina en ks, como geeks, geeksforgeeks, ks, etc.

Ejemplo:

Este código utiliza una expresión regular para comprobar si la cadena termina en ¡Mundo!. Si se encuentra una coincidencia, se imprime ¡Coincidencia encontrada! de lo contrario, imprime Coincidencia no encontrada .

Python3




import> re> > string>=> 'Hello World!'> pattern>=> r>'World!$'> > match>=> re.search(pattern, string)> if> match:> >print>(>'Match found!'>)> else>:> >print>(>'Match not found.'>)>

>

>

Producción

Match found!>

5. . - Punto

El símbolo de punto (.) coincide solo con un carácter, excepto el carácter de nueva línea ( ). Por ejemplo -

  • a.b buscará la cadena que contenga algún carácter en el lugar del punto, como acb, acbd, abbb, etc.
  • .. comprobará si la cadena contiene al menos 2 caracteres

Ejemplo:

Este código utiliza una expresión regular para buscar el patrón. brown.fox dentro de la cuerda. El punto (.>) en el patrón representa cualquier carácter. Si se encuentra una coincidencia, se imprime ¡Coincidencia encontrada! de lo contrario, imprime Coincidencia no encontrada .

Python3




import> re> > string>=> 'The quick brown fox jumps over the lazy dog.'> pattern>=> r>'brown.fox'> > match>=> re.search(pattern, string)> if> match:> >print>(>'Match found!'>)> else>:> >print>(>'Match not found.'>)>

>

>

Producción

Match found!>

6. | - O

El símbolo Or funciona como operador o, lo que significa que verifica si el patrón antes o después del símbolo o está presente en la cadena o no. Por ejemplo -

  • a|b coincidirá con cualquier cadena que contenga aob, como acd, bcd, abcd, etc.

7. ? – Signo de interrogación

El signo de interrogación (?) es un cuantificador en expresiones regulares que indica que el elemento anterior debe coincidir cero o una vez. Le permite especificar que el elemento es opcional, lo que significa que puede aparecer una vez o no aparecer en absoluto. Por ejemplo,

  • ab?c coincidirá con la cadena ac, acb, dabc pero no coincidirá con abbc porque hay dos b. De manera similar, no coincidirá con abdc porque b no va seguido de c.

8.* – Estrella

El símbolo de estrella (*) coincide con cero o más apariciones de la expresión regular que precede al símbolo *. Por ejemplo -

  • ab*c coincidirá con la cadena ac, abc, abbbc, dabc, etc. pero no coincidirá con abdc porque b no va seguido de c.

9. + – Más

El símbolo más (+) coincide con una o más apariciones de la expresión regular que precede al símbolo +. Por ejemplo -

  • ab+c coincidirá con la cadena abc, abbc, dabc, pero no coincidirá con ac, abdc, porque no hay b en ac y b, no va seguido de c en abdc.

10. {m, n} – Llaves

Las llaves coinciden con cualquier repetición que preceda a la expresión regular de ma n, ambas inclusive. Por ejemplo -

  • a{2, 4} coincidirá con la cadena aaab, baaaac, gaad, pero no con cadenas como abc, bc porque solo hay una a o ninguna a en ambos casos.

11. () – Grupo

El símbolo de grupo se utiliza para agrupar subpatrones. Por ejemplo -

  • (a|b)cd coincidirá con cadenas como acd, abcd, gacd, etc.

Secuencias especiales

Las secuencias especiales no coinciden con el carácter real de la cadena, sino que indican la ubicación específica en la cadena de búsqueda donde debe ocurrir la coincidencia. Facilita la escritura de patrones de uso común.

Lista de secuencias especiales

Secuencia especial

Descripción

Ejemplos

A

Coincide si la cadena comienza con el carácter dado

áfora

para frikis

por el mundo



Coincide si la palabra comienza o termina con el carácter dado. (cadena) comprobará el comienzo de la palabra y (cadena) comprobará el final de la palabra.

ge

frikis

conseguir

B

Es lo opuesto a , es decir, la cadena no debe comenzar ni terminar con la expresión regular dada.

Bge

juntos

fragua

d

Coincide con cualquier dígito decimal, esto es equivalente a la clase establecida [0-9]

d

123

Gee1

D

Coincide con cualquier carácter que no sea un dígito, esto es equivalente a la clase establecida [^0-9]

D

frikis

friki1

s

Coincide con cualquier carácter de espacio en blanco.

s

caramba

un antes de Cristo un

S

Coincide con cualquier carácter que no sea un espacio en blanco

S

una cama

a B C D

En

Coincide con cualquier carácter alfanumérico, esto equivale a la clase [a-zA-Z0-9_].

En

123

geeks4

EN

Coincide con cualquier carácter no alfanumérico.

EN

>$

dar

CON

Coincide si la cadena termina con la expresión regular dada

ab

abcdab

bababab

Funciones de expresiones regulares

re El módulo contiene muchos funciones que nos ayudan a buscar una cadena para una coincidencia.

Veamos varias funciones proporcionadas por este módulo para trabajar con expresiones regulares en Python.

Función Descripción
re.findall() busca y devuelve todas las apariciones coincidentes en una lista
re.compilar() Las expresiones regulares se compilan en objetos de patrón.
re.dividir() Divida la cadena por las apariciones de un carácter o un patrón.
re.sub() Reemplaza todas las apariciones de un carácter o patrón con una cadena de reemplazo.
re.escape() Escapa del carácter especial
re.search() Busca la primera aparición de un carácter o patrón.

Veamos el funcionamiento de estas funciones RegEx con definición y ejemplos:

1. re.findall()

Devuelve todas las coincidencias de patrón que no se superponen en una cadena, como una lista de cadenas. La cadena se escanea de izquierda a derecha y las coincidencias se devuelven en el orden encontrado.

Encontrar todas las apariciones de un patrón

Este código utiliza una expresión regular. ( d+> ) para encontrar todas las secuencias de uno o más dígitos en la cadena dada. Busca valores numéricos y los almacena en una lista. En este ejemplo, busca e imprime los números. 123456789 y 987654321 de la cadena de entrada.

Python3




import> re> string>=> '''Hello my Number is 123456789 and> >my friend's number is 987654321'''> regex>=> 'd+'> > match>=> re.findall(regex, string)> print>(match)>

>

>

Producción

['123456789', '987654321']>

2. re.compilar()

Las expresiones regulares se compilan en objetos de patrón, que tienen métodos para diversas operaciones, como buscar coincidencias de patrones o realizar sustituciones de cadenas.

Ejemplo 1:

El código utiliza un patrón de expresión regular. [a-e]> para buscar y enumerar todas las letras minúsculas de 'a' a 'e' en la cadena de entrada Sí, dijo el señor Gibenson Stark. La salida será ['e', 'a', 'd', 'b', 'e']> , que son los personajes coincidentes.

Pitón




import> re> p>=> re.>compile>(>'[a-e]'>)> > print>(p.findall(>'Aye, said Mr. Gibenson Stark'>))>

>

>

Producción

['e', 'a', 'd', 'b', 'e', 'a']>

Comprender el resultado:

  • La primera aparición es 'e' en Aye y no 'A', ya que distingue entre mayúsculas y minúsculas.
  • La siguiente aparición es 'a' en Said, luego 'd' en Said, seguida de 'b' y 'e' en Gibenson, la última 'a' coincide con Stark.
  • La barra invertida del metacarácter '' tiene un papel muy importante ya que señala varias secuencias. Si la barra invertida se va a utilizar sin su significado especial como metacarácter, utilice ''

Ejemplo 2: Establecer clase [s,.] coincidirá con cualquier carácter de espacio en blanco, ',' o '.'.

edad de dharmendra

El código utiliza expresiones regulares para buscar y enumerar todos los dígitos individuales y secuencias de dígitos en las cadenas de entrada dadas. Encuentra un solo dígito con d> y secuencias de dígitos con d+> .

Pitón




import> re> p>=> re.>compile>(>'d'>)> print>(p.findall(>'I went to him at 11 A.M. on 4th July 1886'>))> > p>=> re.>compile>(>'d+'>)> print>(p.findall(>'I went to him at 11 A.M. on 4th July 1886'>))>

>

>

Producción

['1', '1', '4', '1', '8', '8', '6'] ['11', '4', '1886']>

Ejemplo 3:

El código utiliza expresiones regulares para buscar y enumerar caracteres de palabras, secuencias de caracteres de palabras y caracteres que no son palabras en cadenas de entrada. Proporciona listas de los caracteres o secuencias coincidentes.

Pitón




import> re> > p>=> re.>compile>(>'w'>)> print>(p.findall(>'He said * in some_lang.'>))> > p>=> re.>compile>(>'w+'>)> print>(p.findall('I went to him at>11> A.M., he> said>*>*>*> in> some_language.'))> > p>=> re.>compile>(>'W'>)> print>(p.findall(>'he said *** in some_language.'>))>

>

>

Producción

['H', 'e', 's', 'a', 'i', 'd', 'i', 'n', 's', 'o', 'm', 'e', '_', 'l', 'a', 'n', 'g'] ['I', 'went', 'to', 'him', 'at', '11', 'A', 'M', 'he', 'said', 'in', 'some_language'] [' ', ' ', '*', '*', '*', ' ...>

Ejemplo 4:

El código utiliza un patrón de expresión regular 'ab*' para buscar y enumerar todas las apariciones de 'ab' seguido de cero o más caracteres 'b' en la cadena de entrada ababbaabbb. Devuelve la siguiente lista de coincidencias: ['ab', 'abb', 'abbb'].

Pitón




import> re> p>=> re.>compile>(>'ab*'>)> print>(p.findall(>'ababbaabbb'>))>

>

mylivecricket en cricket en vivo

>

Producción

['ab', 'abb', 'a', 'abbb']>

Comprender el resultado:

  • Nuestro RE es ab*, que va acompañado de cualquier no. de 'b's, comenzando desde 0.
  • La salida 'ab' es válida debido a una sola 'a' acompañada de una sola 'b'.
  • La salida 'abb' es válida debido a una sola 'a' acompañada de 2 'b'.
  • La salida 'a' es válida debido a una sola 'a' acompañada de 0 'b'.
  • La salida 'abbb' es válida debido a una sola 'a' acompañada de 3 'b'.

3. re.dividir()

Divida la cadena por las apariciones de un carácter o un patrón; al encontrar ese patrón, los caracteres restantes de la cadena se devuelven como parte de la lista resultante.

Sintaxis:

re.split(pattern, string, maxsplit=0, flags=0)>

El primer parámetro, patrón, denota la expresión regular, cadena es la cadena dada en la que se buscará el patrón y en la que se produce la división, maxsplit, si no se proporciona, se considera cero '0', y si se proporciona cualquier valor distinto de cero, entonces a lo sumo se producen tantas escisiones. Si maxsplit = 1, entonces la cadena se dividirá solo una vez, lo que dará como resultado una lista de longitud 2. Las banderas son muy útiles y pueden ayudar a acortar el código, no son parámetros necesarios, por ejemplo: banderas = re.IGNORECASE, en esta división , se ignorarán las mayúsculas y minúsculas.

Ejemplo 1:

Divide una cadena utilizando caracteres que no son palabras y espacios como delimitadores, devolviendo palabras: ['Words', 'words', 'Words']> . Considera los apóstrofes como caracteres que no son palabras: ['Word', 's', 'words', 'Words']> . Divide utilizando caracteres y dígitos que no son palabras: ['On', '12th', 'Jan', '2016', 'at', '11', '02', 'AM']> . Divide usando dígitos como delimitador: ['On ', 'th Jan ', ', at ', ':', ' AM']> .

Pitón




from> re>import> split> > print>(split(>'W+'>,>'Words, words , Words'>))> print>(split(>'W+'>,>'Word's words Words'>))> print>(split(>'W+'>,>'On 12th Jan 2016, at 11:02 AM'>))> print>(split(>'d+'>,>'On 12th Jan 2016, at 11:02 AM'>))>

>

>

Producción

['Words', 'words', 'Words'] ['Word', 's', 'words', 'Words'] ['On', '12th', 'Jan', '2016', 'at', '11', '02', 'AM'] ['On ', 'th Jan ', ', at ', ':', ' AM']>

Ejemplo 2:

La primera declaración divide la cadena en la primera aparición de uno o más dígitos: ['On ', 'th Jan 2016, at 11:02 AM']> . El segundo divide la cadena usando letras minúsculas de la a a la f como delimitadores, sin distinguir entre mayúsculas y minúsculas: ['', 'y, ', 'oy oh ', 'oy, ', 'ome here'> ]>. Third divide la cadena usando letras minúsculas de la a a la f como delimitadores, distingue entre mayúsculas y minúsculas: ['', 'ey, Boy oh ', 'oy, ', 'ome here']> .

Pitón




import> re> print>(re.split(>'d+'>,>'On 12th Jan 2016, at 11:02 AM'>,>1>))> print>(re.split(>'[a-f]+'>,>'Aey, Boy oh boy, come here'>, flags>=>re.IGNORECASE))> print>(re.split(>'[a-f]+'>,>'Aey, Boy oh boy, come here'>))>

>

>

Producción

['On ', 'th Jan 2016, at 11:02 AM'] ['', 'y, ', 'oy oh ', 'oy, ', 'om', ' h', 'r', ''] ['A', 'y, Boy oh ', 'oy, ', 'om', ' h', 'r', '']>

4. re.sub()

El 'sub' en la función significa SubString, se busca un determinado patrón de expresión regular en la cadena dada (tercer parámetro) y, al encontrar el patrón de subcadena, se reemplaza por repl (segundo parámetro), el conteo verifica y mantiene el número de veces. esto ocurre.

Sintaxis:

 re.sub(pattern, repl, string, count=0, flags=0)>

Ejemplo 1:

  • La primera declaración reemplaza todas las apariciones de 'ub' con '~*' (no distingue entre mayúsculas y minúsculas): 'S~*ject has ~*er booked already'> .
  • La segunda declaración reemplaza todas las apariciones de 'ub' con '~*' (distingue entre mayúsculas y minúsculas): 'S~*ject has Uber booked already'> .
  • La tercera declaración reemplaza la primera aparición de 'ub' con '~*' (no distingue entre mayúsculas y minúsculas): 'S~*ject has Uber booked already'> .
  • El cuarto reemplaza 'Y' por '&' (no distingue entre mayúsculas y minúsculas): 'Baked Beans & Spam'> .

Pitón




import> re> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >flags>=>re.IGNORECASE))> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>))> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >count>=>1>, flags>=>re.IGNORECASE))> print>(re.sub(r>'sANDs'>,>' & '>,>'Baked Beans And Spam'>,> >flags>=>re.IGNORECASE))>

>

>

Producción

S~*ject has ~*er booked already S~*ject has Uber booked already S~*ject has Uber booked already Baked Beans & Spam>

5. re.subn()

subn() es similar a sub() en todos los sentidos, excepto en su forma de proporcionar salida. Devuelve una tupla con un recuento del total de reemplazos y la nueva cadena en lugar de solo la cadena.

Sintaxis:

 re.subn(pattern, repl, string, count=0, flags=0)>

Ejemplo:

re.subn()> reemplaza todas las apariciones de un patrón en una cadena y devuelve una tupla con la cadena modificada y el recuento de sustituciones realizadas. Es útil para sustituciones que distinguen entre mayúsculas y minúsculas y no las distinguen.

Pitón




import> re> > print>(re.subn(>'ub'>,>'~*'>,>'Subject has Uber booked already'>))> > t>=> re.subn(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >flags>=>re.IGNORECASE)> print>(t)> print>(>len>(t))> print>(t[>0>])>

>

>

Producción

('S~*ject has Uber booked already', 1) ('S~*ject has ~*er booked already', 2) 2 S~*ject has ~*er booked already>

6. re.escape()

Devuelve una cadena con todos los caracteres no alfanuméricos con barra invertida; esto es útil si desea hacer coincidir una cadena literal arbitraria que puede tener metacaracteres de expresión regular.

Sintaxis:

re.escape(string)>

Ejemplo:

re.escape()> se utiliza para escapar de caracteres especiales en una cadena, lo que hace que sea seguro usarlo como patrón en expresiones regulares. Garantiza que cualquier carácter con significado especial en expresiones regulares se trate como carácter literal.

Pitón




import> re> print>(re.escape(>'This is Awesome even 1 AM'>))> print>(re.escape(>'I Asked what is this [a-9], he said ^WoW'>))>

>

>

Producción

This is Awesome even 1 AM I Asked what is this [a-9], he said   ^WoW>

7. re.search()

Este método devuelve Ninguno (si el patrón no coincide) o un re.MatchObject contiene información sobre la parte coincidente de la cadena. Este método se detiene después de la primera coincidencia, por lo que es más adecuado para probar una expresión regular en lugar de extraer datos.

Ejemplo: Buscando una ocurrencia del patrón

Este código utiliza una expresión regular para buscar un patrón en la cadena dada. Si se encuentra una coincidencia, extrae e imprime las partes coincidentes de la cadena.

En este ejemplo específico, busca un patrón que consta de un mes (letras) seguido de un día (dígitos) en la cadena de entrada Nací el 24 de junio. Si encuentra una coincidencia, imprime la coincidencia completa, el mes , y el día.

Python3




import> re> regex>=> r>'([a-zA-Z]+) (d+)'> > match>=> re.search(regex,>'I was born on June 24'>)> if> match !>=> None>:> >print> (>'Match at index %s, %s'> %> (match.start(), match.end()))> >print> (>'Full match: %s'> %> (match.group(>0>)))> >print> (>'Month: %s'> %> (match.group(>1>)))> >print> (>'Day: %s'> %> (match.group(>2>)))> > else>:> >print> (>'The regex pattern does not match.'>)>

>

>

Producción

Match at index 14, 21 Full match: June 24 Month: June Day: 24>

CONJUNTOS

A Colocar es un conjunto de caracteres encerrados entre corchetes '[]'. Los conjuntos se utilizan para hacer coincidir un solo carácter en el conjunto de caracteres especificado entre paréntesis. A continuación se muestra la lista de conjuntos:

Colocar Descripción
{norte,} Cuantifica el carácter o grupo anterior y coincide con al menos n apariciones.
* Cuantifica el carácter o grupo anterior y coincide con cero o más apariciones.
[0123] Coincide con los dígitos especificados (0, 1, 2 o 3)
[^arn] coincidencias para cualquier carácter EXCEPTO a, r y n
d Coincide con cualquier dígito (0-9).
[0-5][0-9] coincidencias para cualquier número de dos dígitos del 00 al 59
En Coincide con cualquier carácter alfanumérico (a-z, A-Z, 0-9 o _).
[un] Coincide con cualquier alfabeto en minúscula entre a y n.
D Coincide con cualquier carácter que no sea un dígito.
[arn] coincide donde uno de los caracteres especificados (a, r o n) está presente
[a-zA-Z] coincide con cualquier carácter entre ayz, minúscula O mayúscula
[0-9] coincide con cualquier dígito entre 0 y 9

Objeto coincidente

Un objeto Match contiene toda la información sobre la búsqueda y el resultado y, si no se encuentra ninguna coincidencia, se devolverá Ninguno. Veamos algunos de los métodos y atributos más utilizados del objeto de coincidencia.

1. Obtener la cadena y la expresión regular

match.re El atributo devuelve la expresión regular pasada y partido.cadena El atributo devuelve la cadena pasada.

Ejemplo: Obtener la cadena y la expresión regular del objeto coincidente

en java

El código busca la letra. GRAMO en el límite de una palabra en la cadena Bienvenido a GeeksForGeeks e imprime el patrón de expresión regular ( res.re> ) y la cadena original ( res.string> ) .

Python3




import> re> s>=> 'Welcome to GeeksForGeeks'> res>=> re.search(r>'G'>, s)> > print>(res.re)> print>(res.string)>

>

>

Producción

re.compile('G') Welcome to GeeksForGeeks>

2. Obtener el índice del objeto coincidente

  • El método start() devuelve el índice inicial de la subcadena coincidente.
  • El método end() devuelve el índice final de la subcadena coincidente.
  • El método span() devuelve una tupla que contiene el índice inicial y final de la subcadena coincidente.

Ejemplo: Obteniendo índice de objeto coincidente

El código busca la subcadena Gee en el límite de una palabra en la cadena Bienvenido a GeeksForGeeks e imprime el índice inicial de la coincidencia (res.start()>), el índice final del partido (res.end()>), y la duración del partido (res.span()>).

Python3




import> re> > s>=> 'Welcome to GeeksForGeeks'> > res>=> re.search(r>'Gee'>, s)> > print>(res.start())> print>(res.end())> print>(res.span())>

>

>

Producción

11 14 (11, 14)>

3. Obtener una subcadena coincidente

El método group() devuelve la parte de la cadena para la que coinciden los patrones. Vea el siguiente ejemplo para una mejor comprensión.

Ejemplo: Obtener una subcadena coincidente

El código busca una secuencia de dos caracteres que no son dígitos seguidos de un espacio y la letra 't' en la cadena Bienvenido a GeeksForGeeks e imprime el texto coincidente usando res.group()> .

Python3




import> re> s>=> 'Welcome to GeeksForGeeks'> res>=> re.search(r>'D{2} t'>, s)> print>(res.group())>

>

>

Producción

me t>

En el ejemplo anterior, nuestro patrón especifica que la cadena contenga al menos 2 caracteres seguidos de un espacio, y ese espacio va seguido de una t.

Artículo relacionado :

Referencia:
https://docs.python.org/2/library/re.html

Hemos discutido RegEx en Python, hemos repasado los metacaracteres, funciones y secuencias especiales en RegEx Python.

La expresión regular es un concepto muy importante en Python, hemos intentado explicarlo de una manera sencilla. ¡Espero que te ayude en tu viaje a Python!