Buscar en un Archivo usando Expresiones Regulares


Descripción

Para probar el programa puedes usar los archivos:

Escribe un programa simple que simule la operación del comando grep en Unix.

Debe pedir al usuario que ingrese una expresión regular y cuente el número de líneas que coincidan con la expresión indicada.

Ejemplos de ejecución

$ python grep.py
Ingresa una expresión regular: ^Author
mbox.txt tiene 1798 líneas que coinciden con ^Author
$ python grep.py
Ingresa una expresión regular: ^X-
mbox.txt tiene 14368 líneas que coinciden con ^X-
$ python grep.py
Ingresa una expresión regular: java$
mbox.txt tiene 4175 líneas que coinciden con java$

Solución

Mostrar solución
import re

regex = input('Ingresa una expresión regular: ')

with open('mbox.txt', 'r') as archivo:
  cantidad = 0
  for linea in archivo:
    coincidencias = re.findall(regex, linea)
    cantidad += len(coincidencias)

print(f'mbox.txt tiene {cantidad} líneas que coinciden con {regex}')

Probar solución en Google Colab

Fuente del ejercicio: https://es.py4e.com/html3/11-regex