可以使用正则表达式来实现。代码如下:

import re

def remove_address_suffix(address_str, num_layers=0, num_units=0, num_buildings=0, num_blocks=0):
    # 去掉X层
    for i in range(num_layers):
        pattern = r'(\d+)层$'
        address_str = re.sub(pattern, '', address_str)
    
    # 去掉X单元
    for i in range(num_units):
        pattern = r'(\d+)单元$'
        address_str = re.sub(pattern, '', address_str)
    
    # 去掉X号楼
    for i in range(num_buildings):
        pattern = r'(\d+)号楼$'
        address_str = re.sub(pattern, '', address_str)
    
    # 去掉X幢
    for i in range(num_blocks):
        pattern = r'(\d+)幢$'
        address_str = re.sub(pattern, '', address_str)
    
    return address_str

使用方法:

address_str = "北京市海淀区中关村南大街5号院6号楼2单元1503室"
new_address_str = remove_address_suffix(address_str, num_layers=1, num_units=1, num_buildings=1)
print(new_address_str)
# 输出:北京市海淀区中关村南大街5号院6

上述代码中,remove_address_suffix 函数接受一个地址字符串和四个参数,分别表示要去掉的层数、单元数、号楼数和幢数。函数内部使用循环和正则表达式分别去掉相应的后缀,最后返回处理后的地址字符串。在使用时,只需要传入要处理的地址字符串和需要去掉的后缀的数量即可。上述例子中,去掉了一层、一单元和一号楼的后缀,最终返回了不包含这些后缀的地址字符串

python从地址字符串中去掉去掉X层、X单元、X号楼、X幢

原文地址: https://www.cveoy.top/t/topic/fHbw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录