街道地址格式化:将末尾门牌号移至地址字段开头
调整公寓地址字段格式:将末尾门牌号移至开头
现有拆分的房产地址字段中,公寓类地址的Address2格式(门牌号在街道名末尾,以, 分隔)不利于后续信息匹配,需要将这类末尾的门牌号(数字或数字加单个字符格式)移至字段开头,转换成Address3的格式。
解决方案(R语言)
使用正则表达式匹配目标模式,通过gsub函数完成格式转换:
# 原始地址字段 Address1 <- c("76", "Flat 2", "Flat 4") Address2 <- c("Acacia Avenue", "Hightown, 23", "London Road, 34A") # 处理Address2,将末尾门牌号移至开头 Address3 <- gsub("^(.*), ([0-9]+[A-Za-z]?)$", "\\2, \\1", Address2) # 查看处理前后的拼接结果 cat("处理前的地址:\n") print(paste(Address1, Address2)) cat("\n处理后的地址:\n") print(paste(Address1, Address3))
正则逻辑说明
^(.*), ([0-9]+[A-Za-z]?)$:匹配整个字符串,捕获两部分内容^(.*):捕获从开头到,之前的街道名称部分([0-9]+[A-Za-z]?):捕获,后的门牌号,支持纯数字或数字加单个字母(如34A),?表示字母为可选项
\\2, \\1:将捕获的门牌号(第二部分)移至开头,街道名称(第一部分)放在后面,保持,分隔格式
运行结果
处理前的地址: [1] "76 Acacia Avenue" "Flat 2 Hightown, 23" "Flat 4 London Road, 34A" 处理后的地址: [1] "76 Acacia Avenue" "Flat 2 23, Hightown" "Flat 4 34A, London Road"
内容的提问来源于stack exchange,提问作者Stephen Clark
相关产品推荐
相关产品推荐

