我正在尝试使用正则表达式在有关地块的法律说明中提取度/分/秒和英尺。书面法律说明的示例如下:
从PT的第N行第31 N 56D 54M 00S W 365页继续 FT TH S 32D 06M 00S W 91/89 FT TH S 61D 54M 00S E 335/77 FT至 SD CO RD NO 31 TH N 32D 06M 00S E 62/62 FT向POB EXC的新行 该零件已在书1132中传送,第473页0 / 5900A
我编写了一个正则表达式,可以通过它查找我要寻找的区域,例如: N 32D 06M 00S E 62/62 FT。
问题是有时度数/分钟/秒之后没有直接书写脚。例如,它可能会说: N 32D 06M 00S E ,沿62/62 FT行驶。
“沿着这条路”是与我的正则表达式混淆的部分。
是否有解决此问题的好方法?下面是我的代码示例
用户输入:
legal_input=input("Paste legal description from RW here: ")
正则表达式代码找到cogo:
cogo_rgx = re.compile(r'([N]{,2}[S]{,2} \w{,1}\d{,2}D{,1} \d{,2}M{,1} \d{,2}S{,1}\s{,2}\w) (\s{,2}\d{1,4}\W{,1}\d{,2} FT){,1}')
full_legal=cogo_rgx.findall(legal_input)
打印消息:
print("\nCogo below: \n")
从字典中打印键,然后打印值(dms和脚)。这样可以更容易阅读:
for key, value in full_legal:
print(key, value)
答案 0 :(得分:0)
尝试使用正则表达式:((?:N|S) \d{2}D \d{2}M \d{2}S (?:E|W) )(?:.)*?(?=\d+(?:\/\d+)? FT)(\d+(?:\/\d+)? FT)
并组合捕获组1和2