我试图使用正则表达式提取土地地块的法定描述中的度/分/秒和英尺。书面法律描述的示例如下:
CONT FROM THE PT ON THE NWLY ROW LN OF CO RD NO 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 TO THE NWLY ROW OF SD CO RD NO 31 TH N 32D 06M 00S E 62/62 FT TO THE POB EXC THAT PART CONVEYED IN BOOK 1132 PAGE 473 0/5900A
我已经写了一个正则表达式,它将遍历这个区域并找到我要寻找的区域,例如:n32d06m00se62/62英尺。
问题是有时脚不能直接写在度数/分/秒之后。例如,它可能会说:N 32D 06M 00S E沿道路行驶62/62英尺。
“沿路前进”是扰乱我的正则表达式的部分。你知道吗
有什么好办法可以解决这个问题吗?下面是我的代码示例
用户输入:
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后跟feet)。这样更容易阅读:
for key, value in full_legal:
print(key, value)
试试正则表达式:
((?:N|S) \d{2}D \d{2}M \d{2}S (?:E|W) )(?:.)*?(?=\d+(?:\/\d+)? FT)(\d+(?:\/\d+)? FT)
并结合捕获组1和2
Demo
相关问题 更多 >
编程相关推荐