Regex在Python中不返回任何东西(使用Regex时搜索关键字的搜索参数)



我不太确定regex是如何工作的,但我正试图做一个项目在哪里(还没有设置它,但在pdf代码的pdf索引方面首先与测试pdf工作)来分析标记方案pdf,并基于此做任何有用的数据。

问题是,当我在regex中输入搜索参数时,它不会从pdf中返回任何内容。我正在尝试迭代或遍历每一行开始1 - 2位数字(问题列),然后使用re.compile(r'd{1} [A-D]')在以下代码中的A-D(答案列):

import re
import requests
import pdfplumber
import pandas as pd

def download_file(url):
local_filename = url.split('/')[-1]

with requests.get(url) as r:
with open(local_filename, 'wb') as f:
f.write(r.content)

return local_filename

ap_url = 'https://papers.gceguide.com/A%20Levels/Biology%20(9700)/2019/9700_m19_ms_12.pdf'
ap = download_file(ap_url)
with pdfplumber.open(ap) as pdf:
page = pdf.pages[1]
text = page.extract_text()

#print(text)
new_vend_re = re.compile(r'd{1} [A-D]')
for line in text.split('n'):
if new_vend_re.match(line):
print(line)

当我运行代码时,我没有得到任何回报。虽然打印文本将打印整个页面。

这是我正在尝试工作的PDF: https://papers.gceguide.com/A%20Levels/Biology%20(9700)/2019/9700_m19_ms_12.pdf

您在数字和标记之间只匹配一个空格,但是如果您查看text的输出,在数字和标记之间有多个空格。

'9700/12  Cambridge International AS/A Level – Mark Scheme  March 2019nPUBLISHED n nQuestion  Answer  Marks n1  A  1n2  C  1n3  C  1n4  A  1n5  A  1n6  C  1n7  A  1n8  D  1n9  A  1n10  C  1n11  B  1n12  D  1n13  B  1n...

将您的正则表达式更改为以下内容以匹配不仅一个空间:

new_vend_re = re.compile(r'd{1}s+[A-D]')

参见alexpdev的回答,了解new_vend_re.match()new_vend_re.search()的区别。如果在代码中运行此命令,将得到以下输出:

1  A  1
2  C  1
3  C  1
4  A  1
5  A  1
6  C  1
7  A  1
8  D  1
9  A  1

(你也可以在这里看到,总是有两个空格而不是一个)。

//编辑:修复了regex

的错字

最新更新