You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则表达式提取PDF地址中冒号后的内容?

提取PDF中冒号后地址内容的正则方案

针对你从PDF提取的字符串,要捕获所有冒号:之后的地址内容(包括跨多行的情况),可以用以下正则表达式配合Python的re模块实现:

正则表达式及说明

(?<=:).*?(?=\n{2,}|\Z)

各部分作用:

  • (?<=:):正向断言,定位到冒号:的后方,不包含冒号本身
  • .*?:非贪婪匹配任意字符(需配合re.DOTALL模式,让.能匹配换行符),直到遇到终止条件
  • (?=\n{2,}|\Z):正向断言,匹配连续两个及以上换行(空行,用于分隔不同地址)或字符串结尾的位置,不包含这些终止符

Python代码示例

import re

# 假设这是从PDF提取到的文本内容
pdf_extracted_text = """Alamat :Menara Bank Mega, Lantai 24, Jl. Kapten P Tendean
Kav. 12-14A

Alamat :JL USMAN NO. 42, RT 8/4, KEL. KELAPA DUA WETAN,
KEC. PASAR REBO, JAKARTA TIMUR

Alamat :JL. HR. RASUNA SAID KAV 1-2, GRAHA IRAMA
LANTAI 6 KUNINGAN TIMUR- SETIABUDI JAKARTA
SELATAN

Alamat :GD. GRAHA PRATAMA LT.10, JL. MT. HARYONO
KAV.15, TEBET

AHUAlamat :GEDUNG BERITASATU PLAZA LT. 8, JL. JEND. GATOT
SUBROTO KAV. 35-36"""

# 匹配所有目标内容
matches = re.findall(r'(?<=:).*?(?=\n{2,}|\Z)', pdf_extracted_text, re.DOTALL)
# 清理结果中的多余空白和换行
cleaned_addresses = [addr.strip() for addr in matches]

# 输出结果
for idx, addr in enumerate(cleaned_addresses, 1):
    print(f"地址 {idx}:\n{addr}\n")

运行后会输出每个地址的干净内容,自动处理跨多行的情况,同时忽略冒号前的任意前缀(比如Alamat、AHUAlamat)。

内容的提问来源于stack exchange,提问作者htm_01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:39:21