es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Coincidencia de expresiones regulares de Python para URLs

Tengo una lista en un archivo de texto de URLs con algunos textos no deseados. Escribí una expresión regular que cumple con mis necesidades y funciona bien, pero estoy enfrentando un problema donde la expresión regular agrega muestras no deseadas [”] al resultado debajo de los ejemplos:

Contenido del archivo con una lista de URLs:

http://www.example.com/52 (Estado: 403) [Tamaño: 919]
http://www.example.com/details (Estado: 403) [Tamaño: 919]
http://www.example.com/h (Estado: 403) [Tamaño: 919]
http://www.example.com/affiliate (Estado: 403) [Tamaño: 919]
http://www.example.com/56 (Estado: 403) [Tamaño: 919]

La expresión regular que usé es: "^[://.a-zA-Z0-9-_]*"

El resultado es el siguiente:

[‘http://www.example.com/52’]
[‘http://www.example.com/details’]
[‘http://www.example.com/h’]
[‘http://www.example.com/affiliate’]
[‘http://www.example.com/56’]

Necesito el resultado como sigue:

http://www.example.com/52
http://www.example.com/details
http://www.example.com/h
http://www.example.com/affiliate
http://www.example.com/56

El código utilizado para este programa es el siguiente:

import re

with open("test.txt","r") as test:
for i in test:
x = re.findall("^[://.a-zA-Z0-9-_]*",i)
print(x)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para modificar la salida y eliminar los corchetes [ ] no deseados de las coincidencias de regex, puede modificar su código cambiando la declaración de impresión para imprimir solo el primer elemento de la lista devuelta por el método re.findall (). Así es cómo puede lograr la salida deseada:

    import re
    
    with open("test.txt", "r") as test:
        for i in test:
            x = re.findall("^[://.a-zA-Z0-9-_]*", i)[0]
            print(x)
    

    Esto imprimirá solo el primer elemento de la lista devuelta por el método re.findall () y eliminará los corchetes [ ] no deseados de la salida.

Comments are closed.