如何在python中使用正则表达式从法律描述中提取信息

如何在python中使用正则表达式从法律描述中提取信息,python,regex,gis,Python,Regex,Gis,我试图使用正则表达式提取地块法律描述中的度/分/秒和英尺。书面法律描述的示例如下: 第31 N 56D 54M 00S W 365号公路西北行LN上PT的控制 英尺长S 32D 06M 00S宽91/89英尺长S 61D 54M 00S东335/77英尺至 SD CO路西北行第31号北32D 06M 00S E 62/62英尺至POB EXC 这一部分在1132卷473 0/5900A页中表达 我已经编写了一个正则表达式,它将遍历此区域并找到我正在寻找的区域,例如:n32d06m00se62/6

我试图使用正则表达式提取地块法律描述中的度/分/秒和英尺。书面法律描述的示例如下:

第31 N 56D 54M 00S W 365号公路西北行LN上PT的控制 英尺长S 32D 06M 00S宽91/89英尺长S 61D 54M 00S东335/77英尺至 SD CO路西北行第31号北32D 06M 00S E 62/62英尺至POB EXC 这一部分在1132卷473 0/5900A页中表达

我已经编写了一个正则表达式,它将遍历此区域并找到我正在寻找的区域,例如:n32d06m00se62/62 FT.
问题是有时脚不能直接写在度/分/秒之后。例如,它可能会说:n32d06m00sE沿着道路行驶62/62英尺。
“沿路前进”是干扰我的正则表达式的部分

有什么好办法可以绕过这个问题吗?下面是我的代码示例

用户输入:

legal\u input=input(“将RW中的法律描述粘贴到此处”)

用于查找几何空间的正则表达式代码:

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)
打印消息:

打印(“\n转到下面:\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+)

并合并捕获组1和2


您寻找的匹配是否最终总是以
FT
结尾?(我想知道,因为您的最后一个组有
{,1}
-根据您当前的RE,包括
FT
的组只需要匹配零次或一次,而不是一次?)这是一个好问题。它们总是应该以《金融时报》结尾,但不幸的是,这些法律描述中有相当多的拼写错误,而且这些内容经常被遗漏。我希望它总是完美的,但这就是为什么我必须在代码中加入一些{,1}和{,2}部分的原因。非常感谢你,我一有机会就会尝试这个。我对python还很陌生,所以我非常感谢任何关于如何做事情的帮助或想法。