Python Extract Subcánstring usando Regex

Python Extract Subcánstring usando Regex

Puede haber varios escenarios de casos en los que se requiere extraer una subcadena de una cadena en Python. Por ejemplo, mientras trabaja en grandes conjuntos de datos, es posible que deba obtener datos específicos de los campos de texto o hacer coincidir un patrón particular en una cadena, como una dirección de correo electrónico o número de teléfono. Además, la operación de extracción de subcadena también ayuda en el procesamiento y análisis de texto.

Esta publicación cubrirá los siguientes enfoques:

  • Método 1: subcadena de extracto de Python usando regex en "RE.método de búsqueda () "
  • Método 2: subcadena de extracto de Python usando regex en "RE.Método Match () "
  • Método 3: subcadena de extracto de Python usando regex en "RE.método findall () "
  • Método 4: subcadena de extracto de Python usando regex en "RE.Método FindIter () "

Método 1: subcadena de extracto de Python usando regex en "RE.método de búsqueda () "

La pitón "re.buscar()"El método busca la primera ocurrencia de la instancia del patrón agregado dentro de una cadena y genera un"Fósforo" objeto. Se puede invocar cuando desea ubicar una subcadena específica dentro de una cadena más larga, pero no tiene idea de la frecuencia con la que ocurre.

Sintaxis

Para usar el RE.Search () Método, siga la sintaxis dada:

re.búsqueda (patrón, cadena, banderas)

Aquí:

  • "patrón"Representa el regex que desea buscar.
  • "cadena"Se refiere a la cadena especificada en la que desea buscar.
  • "banderas"Representa los parámetros opcionales, como el modo de múltiples líneas, la sensibilidad de los casos, etc.

Ejemplo 1: Extraer subcadena basada en texto utilizando "RE.método de búsqueda () "

Para utilizar el "re.buscar()"Método para extraer una subcadena, primero importe el"re"Módulo. Este módulo ofrece soporte para regex:

importar

Defina la cadena de la que desea recuperar una subcadena:

string = 'Linuxhint es el mejor sitio web de tutorial'

Luego, especifique el regex. Aquí, "riñonal"Indica que es una cadena en bruto para tratar las reacciones violentas como los personajes literal, y"mejor"¿Es la expresión regular definida o regex:

regex = r'Best '

Pasar el creado "regular" y "cadena"Para el RE.Search () Método y almacenar el objeto resultante en el "fósforo":

Match = Re.búsqueda (regex, cadena)

Ahora, agregue la condición dada para extraer la subcadena coincidente de la "fósforo"Objeto devuelto por la RE.Search () Método y mostrarlo en la consola:

Si el partido:
sub_string = coincidencia.grupo()
imprimir (sub_string)

Se puede observar que la subcadena "mejor"Se ha extraído utilizando el"grupo()Método del objeto de coincidencia:

Ejemplo 2: Extracción de la subcadena numérica utilizando "RE.método de búsqueda () "

Ahora, defina una cadena numérica y busque la primera ocurrencia de uno o más dígitos pasando el "\d+"Como el regex para"re.buscar()" método:

cadena = '039-6546-0987'
Imprimir (RE.Search (r '\ d+', string))

En la regex especificada:

  • "\"Se utiliza para escapar de la carta"d"(Carácter de dígito).
  • "+"Significa uno o dígitos de coincidencia en una fila:

Como puede ver, el objeto coincidente ha sido devuelto por el "re.buscar()" método.

Método 2: subcadena de extracto de Python usando regex en "RE.Método Match () "

"re.fósforo()"Solo busca el Regex al comienzo de las cadenas y genera un objeto de coincidencia en caso de una búsqueda exitosa. Este método se puede utilizar cuando sabe que la subcadena solo ocurre al comienzo de la cadena dada.

Sintaxis

Para invocar el RE.Método Match (), siga la sintaxis dada:

re.Match (patrón, cadena, banderas)

Ejemplo

En primer lugar, defina la expresión regular como "'^L .. .t $". Esta regex coincide con las cuerdas que comienzan "l", terminar con "T", Y tener exactamente 8 caracteres.

regex = '^l… t $'

Entonces, declara la cadena. Pásalo a la RE.Método Match (), junto con el Regex como argumentos:

String = 'Linuxhint'
resultado = re.Match (regex, cadena)

Añade el "if-else"Condición y especifique las declaraciones de impresión respectivas para los casos si"Fósforo"El objeto ha sido devuelto o no:

Si el resultado:
Imprimir ("Se ha realizado con éxito", resultado)
demás:
imprimir ("La búsqueda no tuvo éxito.")

Producción

Método 3: subcadena de extracto de Python usando regex en "RE.método findall () "

El "re.encuentra todos()"El método de Python busca cada instancia de un patrón dentro de las cadenas dadas y genera una lista de subcadenas extraídas. Este método se utiliza en esos escenarios de casos en los que se requiere recuperar múltiples subcadenas sin ningún pedido en particular.

Sintaxis

Para invocar el RE.Método Findall (), consulte la sintaxis dada:

re.findall (patrón, cadena, banderas)

Ejemplo

Definir una cadena que comprende valores numéricos. Luego, especifique el patrón regex como "r '\ d+'”Para que coincida con uno o más dígitos:

string = '4 horas Boot Camp Curso Linuxhint por $ 14.99 '
regex = r '\ d+'

Entonces, llame al "re.encuentra todos()"Método y pase la regex definida y la cadena como argumentos

coincidencias = re.findall (regex, string)

Ahora, iterar sobre el regresado "Fósforo"Objeto almacenado en la variable de coincidencias e imprima los elementos en la consola:

Para el partido en los partidos:
imprimir (coincidir)

Producción

Método 4: subcadena de extracto de Python usando regex en "RE.Método FindIter () "

El "re.finditer ()"El método funciona igual que el RE.método findall (). Sin embargo, devuelve un iterador en lugar de una lista de subcadenas. En Python, este método se puede utilizar cuando existe un conjunto de datos grande y no necesita almacenar todas las coincidencias a la vez. Más específicamente, el RE.El método FindIter () procesa la subcadena extraída a la vez.

Sintaxis

Para invocar el RE.Método FindIter (), siga la sintaxis dada:

re.finditer (patrón, cadena, banderas)

Ejemplo

Primero, crea una cadena. Luego, defina un patrón regex como "r '[A-Z]+'"Eso coincide con una o más letras mayúsculas:

string = 'Linuxhint es el mejor sitio web de tutorial'
regex = r '[a-z]+'

Pasar el regex y la cadena como argumentos al "re.finditer ()"Método y almacene el objeto de coincidencia resultante en"partidos":

coincidencias = re.finditer (regex, string)

Por último, iterar sobre los elementos del objeto coincide, extraiga la subcadena con la ayuda del método "grupo ()" e imprima en la consola:

Para el partido en los partidos:
sub_string = coincidencia.grupo()
imprimir (sub_string)

Producción

Hemos compilado enfoques esenciales relacionados con la extracción de la subcadena en Python.

Conclusión

Para extraer la subcadena usando regex en python, use el "re.buscar()","re.Match () "," Re.findall () ", o el" Re.finditer ()" métodos. Dependiendo de sus requisitos, utilice "re.buscar()"Método cuando se requiere extraer solo la primera instancia de Regex", ",re.fósforo()"Extrae la subcadena presenta el inicio de una cadena", "re.encuentra todos()"Recupera múltiples subcadenas de acuerdo con el patrón y, por último,"re.finditer ()"Procese las múltiples cadenas una a la vez. Este blog cubrió los métodos para extraer sustring en Python.