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)
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: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.