我正在尝试使用正则表达式在地块的法律描述中提取度/分/秒和英尺。书面法律描述的一个例子是这样的:
从 PT 在 NWLY ROW 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 到 SD CORD NO 的 PT 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)
尝试正则表达式: ((?:N|S) \d{2}D \d{2}M \d{2}S (?:E|W) )(?:.)*?(?=\d+(?:\/\d+)? FT)(\d+(?:\/\d+)? FT)
并合并捕获组 1 和 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句