如何用Python结合正则表达式从PDF提取指定工作名称文本?
提取指定区间文本的Python实现方法
方法一:正则表达式(推荐)
利用非贪婪匹配结合跨行匹配标志,精准提取目标区间内容。考虑到PDF转字符串后可能包含换行,需启用re.DOTALL让.匹配换行符。
代码示例:
import re # text为你从PDF提取的前5页字符串 text = "PDF转换后的字符串内容..." # 匹配从"Name of work:"到"Tamilnadu."的内容 pattern = r'Name of work:(.*?)Tamilnadu\.' match = re.search(pattern, text, re.DOTALL) if match: # 提取内容并去除前后空白 work_name = match.group(1).strip() print(work_name) else: print("未找到匹配内容")
- 说明:
(.*?)是非贪婪匹配,确保只匹配到第一个Tamilnadu.为止;re.DOTALL解决内容换行导致的匹配失败问题。
方法二:字符串索引切片
如果文本结构固定,也可以直接用find()定位起止位置后切片提取,逻辑更直观:
代码示例:
# text为PDF转换后的字符串 text = "PDF转换后的字符串内容..." start_key = "Name of work:" end_key = "Tamilnadu." start_idx = text.find(start_key) if start_idx != -1: # 跳过起始关键词本身的长度 start_idx += len(start_key) end_idx = text.find(end_key, start_idx) if end_idx != -1: work_name = text[start_idx:end_idx].strip() print(work_name) else: print("未找到结束标记'Tamilnadu.'") else: print("未找到起始标记'Name of work:'")
- 优点:无需正则知识,适合结构简单固定的文本;缺点:若存在重复起止标记,需额外处理。
内容的提问来源于stack exchange,提问作者SAURABH AHALAWAT
相关产品推荐
相关产品推荐

