我不太確定正則運算式是如何作業的,但我正在嘗試制作一個專案(尚未設定它,但首先使用測驗 pdf 處理代碼的 pdf 索引端)來分析標記方案pdf,并在此基礎上對有用的資料做任何事情。
問題是,當我在正則運算式中輸入搜索引數時,它不會從 pdf 中回傳任何內容。我正在嘗試使用以下代碼迭代或遍歷開頭 1 - 2 位數字(問題列)的每一行,然后是 AD(答案列)re.compile(r'\d{1} [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 Levels/Biology (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 Levels/Biology (9700)/2019/9700_m19_ms_12.pdf
uj5u.com熱心網友回復:
您只匹配數字和標記之間的一個空格,但是如果您查看 的輸出text,則數字和標記之間有多個空格。
'9700/12 Cambridge International AS/A Level – Mark Scheme March 2019\nPUBLISHED \n \nQuestion Answer Marks \n1 A 1\n2 C 1\n3 C 1\n4 A 1\n5 A 1\n6 C 1\n7 A 1\n8 D 1\n9 A 1\n10 C 1\n11 B 1\n12 D 1\n13 B 1\n...
將您的正則運算式更改為以下內容,不僅匹配一個,而且匹配一個或多個空格:
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
(你也可以在這里看到,總是有兩個空格而不是一個)。
//編輯:修正了正則運算式中的錯字
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479777.html
上一篇:有人可以用這個javascript正則運算式幫助我將一串串列項轉換為僅包含專案文本的陣列(沒有串列項#或換行)
下一篇:跳過轉義終止符的Nom決議器
