Python 正则表达式匹配 URL

Python regex matching URLs

我在 URL 的文本文件中有一个列表,其中包含一些不需要的文本我已经编写了一个正则表达式来满足我的需要并且工作正常但我遇到了一个问题,即正则表达式添加到输出不需要的样本[' '] 下面的例子:

文件内容 URL 列表:

http://www.example.com/52                   (Status: 403) [Size: 919]
http://www.example.com/details              (Status: 403) [Size: 919]
http://www.example.com/h                    (Status: 403) [Size: 919]
http://www.example.com/affiliate            (Status: 403) [Size: 919]
http://www.example.com/56                   (Status: 403) [Size: 919]

我使用的正则表达式是:"^[://.a-zA-Z0-9-_]*"

输出如下:

['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']

我需要如下输出:

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

下面这个程序使用的代码:

import re

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

findall 生成一个字符串列表,您可以打印出结果中的第一个元素 print(x[0]) 或者只使用 match 代替此用例,因为有 1 url 每行。

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