Python .re将“ st”替换为“ street”,但街道名称保持不变

时间:2018-11-28 05:38:17

标签: python replace split street-address

我正在尝试更改st。到大街,大街。使用.replace()获取单个单元格中的地址等信息。例如:WEST ST。应该是WEST STREET或MOUNT PEBBLE RD。应该是山石路

这是我的代码:

if 'STREET' not in address and address.find('ST.'):
    address = address.replace('ST','STREET')

结果给了我WESTREET街。如何在不更改地址名称的情况下保持原样?我尝试使用.split(),但是大多数单元格的列表长度不同,因此非常令人困惑。

4 个答案:

答案 0 :(得分:3)

尝试一下:

if 'STREET' not in address and address.find('ST.'):
    address = address.replace(' ST.',' STREET')

答案 1 :(得分:3)

尝试一下,代码越少越好。

address = "WEST ST."

if address.find('ST.'):
    address = address.replace(' ST.',' STREET')

print(address)

答案 2 :(得分:2)

尝试使用带边界的Regex。

例如:

import re

s = """WEST ST
       MOUNT PEBBLE RD"""

toReplace = {"ST": 'STREET', "RD": "ROAD", "ave": "avenue"}
for k,v in toReplace.items():
    s = re.sub(r"\b" + k + r"\b", v, s)
print(s)

输出:

WEST STREET
MOUNT PEBBLE ROAD

答案 3 :(得分:2)

我这样编辑了您的代码:

address = "WEST ST."

if 'STREET' not in address and address.find('ST.'):
    address = address.replace('ST.','STREET')

print (address)

这是结果:

  

西街

您必须替换“ ST”。不是“ ST”