问题描述
我有一个看起来像这样的pdf文件:
我想将编号的项目提取到字典中:
output = {'01': 'Agriculture and related service activities',
'011': 'Growing crops, market gardening and horticulture'...}
目前,我正在使用tika从pdf中提取文本。 但是我现在需要一个正则表达式来从内容中提取编号的项目。 我该怎么做呢?
from tika import parser
raw = parser.from_file(path)
text = raw['content']
regex = ???
match = re.findall(regex, text, flags=re.DOTALL)
文本变量包含文档的文本。 看起来像这样:
U“\\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ n统计新加坡-新加坡标准工业分类,2015 \\ n \\ n \\ nA节:农业和渔业\\ n \\ nSSIC 2015行业SSIC 2010 \\ n \\ n农业与渔业\\ n \\ n01农业及相关服务活动\\ n \\ n011作物,市场园艺和园艺的种植\\ n \\ n0111食品作物的种植(非-Hydroponics)\\ n01111种植带叶蔬菜和水果蔬菜01111 \\ n01112种植蘑菇01112 \\ n01113种植块根作物01113……”
1楼
'^'在正则表达式的前面可能不起作用。 试试下面的代码。
regex = '([\d]+).+?([a-zA-Z].+)'#(\d.+|$)'
match = re.findall(regex, s)
print(match)
Output : [('2015', 'Industry SSIC 2010'),
('01', 'AGRICULTURE AND RELATED SERVICE ACTIVITIES'),
('011', 'GROWING OF CROPS, MARKET GARDENING AND HORTICULTURE'),
('0111', 'Growing of Food Crops (Non-Hydroponics)'),
('01111', 'Growing of leafy and fruit vegetables 01111'),
('01112', 'Growing of mushrooms 01112'),
('01113', 'Growing of root crops 01113......')]
希望能帮助到你。
2楼
您可以尝试以下方法:
regex = ^([\d]+).+?([a-zA-Z].+?)(\d.+|$)