使用Python Regex从某个单词开始一直到行尾都采用字符串

时间:2019-07-12 16:21:36

标签: python regex

尝试从读取的文件中提取特定行,并使其成为返回的可用变量。

有关文件中数据的一些信息。语法如下。

A line of text I do not need  
New domain: www.example.com  
Another line that I do not need  
New domain: www.example2.com  
Ect...

它读取文件,我已经尝试了示例正则表达式模式的许多变体,并且知道我已经关闭了。除此之外,这非常简单。

data = []
with open('test.txt', 'r') as file: 

    data = (re.findall(r"(?<=New domain:).+$",open('test.txt'), re.M))
return data

快乐之路: 该函数从test.txt文件读取,仅查看以New domain开头的行:并且仅将url一直行到行尾并将其放入列表中。

错误:  它只是告诉我模式语法是错误的。

2 个答案:

答案 0 :(得分:2)

您的正则表达式模式很好,但是您不能将文件对象传递给findall。尝试以下方法:

data = (re.findall(r"(?<=New domain:).+$", file.read(), re.M))

答案 1 :(得分:1)

您需要先阅读文件,然后再将其传递给re.findall()方法。您也可以简单地使用正则表达式。

def find_domains():
    with open('test.txt', 'r+') as file:
        file_text = file.read()
        data = re.findall("New domain: (.*)", file_text)
    return data