我正在使用 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的链接中的相同。 我需要解决方案,请帮助
答案 0 :(得分: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