Python .replace 'st' with 'street' 但保持街道名称不变

Python .replace 'st' with 'street' but leave street name the same

我正在尝试更改 st.到街道,大道。大道等。使用 .replace() 作为单个单元格中的地址。例如:西街。应该是 WEST STREET 或 MOUNT PEBBLE RD。应该是 MOUNT PEBBLE ROAD

这是我的代码:

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

结果给我 WESTREET STREET。如何在不更改地址名称的情况下保持地址名称不变?我试过 .split() 但大多数单元格的列表长度不同,所以它真的很混乱。

试试这个:

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

试试这个,代码越少越好。

address = "WEST ST."

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

print(address)

尝试使用带边界的正则表达式。

例如:

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

我这样编辑你的代码:

address = "WEST ST."

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

print (address)

结果如下:

WEST STREET

你必须替换 "ST." 而不是 "ST"