【发布时间】:2018-10-06 21:41:38
【问题描述】:
我有一个包含地址的熊猫数据框。有些格式正确,例如481 Rogers Rd York ON。其他的城市象限和城市名称之间缺少空格,例如:101 9 Ave SWCalgary AB 甚至可能是:101 9 Ave SCalgary AB,其中SW 指的是西南,S 指的是南。
我正在尝试找到一个正则表达式,如果它们后跟小写字母,则会在第二个和第三个大写字母之间添加一个空格,或者如果只有 2 个大写字母后跟小写,则在第一个和第二个大写字母之间添加一个空格.
到目前为止,我发现 ([A-Z]{2,3}[a-z]) 将正确匹配情况,但我不知道如何回头查看它并在位置 2 或 3 处替换。理想情况下,我想使用在[-2:] 处拆分匹配的索引,但我不知道该怎么做。
我发现re.findall('(?<=[A-Z][A-Z])[A-Z][a-z].+', '101 9 Ave SWCalgary AB')
将返回字符串的最后一部分,我可以使用前瞻正则表达式来查找开始,然后加入它们,但这似乎非常低效。
谢谢
【问题讨论】: