You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在str_replace中指定结尾匹配规则修正地址缩写

解决方案

你当前的写法会匹配字符串中任意位置的对应字符,因此已经是全称的地址里包含缩写片段时也会被错误替换。要实现仅匹配结尾的模式,在正则表达式末尾加$锚定符即可,该符号代表仅匹配字符串的结束位置。

修改后的代码(基础版)

library(tidyverse)
test %>% 
  mutate(address2 = str_replace(address, "Rd$","Road"),
         address2 = str_replace(address2, "Ave$","Avenue"),
         address2 = str_replace(address2, "St$","Street"))

运行后不会再出现Avenuenue、Streetreet这类错误重复后缀,所有地址的后缀会完成统一。

更简洁的优化写法

可以用str_replace_all一次性传入替换映射,减少重复代码:

test %>% 
  mutate(address2 = str_replace_all(address, c(
    "Rd$" = "Road",
    "Ave$" = "Avenue",
    "St$" = "Street"
  )))

额外适配提示

如果部分地址末尾存在多余空格,可把模式调整为"Rd\\s*$",\\s*会匹配结尾处零个或多个空白字符,适配更多不规范的录入格式。

内容的提问来源于stack exchange,提问作者Jake L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:54:03