需要在python中获得预期的输出(问题在描述中解释)

问题描述 投票:0回答:1

我正在使用python中的正则表达式开发数据提取器。我卡在我的其他代码正在运行的地方,我在正则表达式中创建但是这个代码如下所述:

正则表达式代码:

regexCode='^about_company:\n[\s\S]+?[A-Z]:'

我在python中运行时上面的代码工作不正常我认为,我犯了一个错误,因为正则表达式代码运行正常here

预期产量:

The output should look like this is terminal of pycharm

对不起链接,我不能因为声誉问题直接放图片

Python代码:

import re

filename = open('textFile.txt','r')
rege = '^about_company:[\s\S]+?[A-Z]:|ABOUT COMPANY:[\s\S]+?[A-Z]:'
for data in filename:
    matches = re.findall(rege, data, re.MULTILINE)
    if matches:
        print(matches)

当我尝试通过将数据存储到文本来打印数据时,它工作但当我尝试从文件中读取数据时,它显示空列表。文本文件与regex101的链接相同。我需要解决方案,请帮忙

python regex python-3.x
1个回答
0
投票

将整个文件读入内存并对整个文本运行正则表达式:

import re

f = open('28985133.dat','r')
data = f.read()                # Read the file contents into a var
rege = r'^about_company:[\s\S]+?[A-Z]:|ABOUT COMPANY:[\s\S]+?[A-Z]:'
matches = re.findall(rege, data, re.MULTILINE) # Collect matches
for s in matches:              # Loop through matches
    print(s)                   # Print matches
© www.soinside.com 2019 - 2024. All rights reserved.