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

如何用stringr处理地址重复前缀并保留单字符方向标识

解决方法

可以用stringr包的str_replace()函数结合正则表达式精准处理,既能删除冗余的两字母前缀,又保留单字符方向标识:

library(tibble)
library(stringr)

# 原始数据
df <- tibble(address_bad = c("1 DA DATALPA PL", 
                             "231 ST STERN AVE", 
                             "943 W WESTON AVE"))

# 处理地址
df <- df %>%
  mutate(address_good = str_replace(address_bad, 
                                    "\\b([A-Z]{2})\\b (?=\\1[A-Z]+)", 
                                    ""))

df

代码说明

  • 正则表达式\\b([A-Z]{2})\\b (?=\\1[A-Z]+)的作用:
    • \\b([A-Z]{2})\\b:匹配独立的两字母大写单词,并用括号把这两个字母捕获为分组1
    • (?=\\1[A-Z]+):正向预查规则,确保这个两字母单词后面紧跟的单词是以分组1的两个字母开头的(也就是前缀和街道名前两位重复)
  • str_replace()会把符合条件的两字母前缀及后续空格替换为空,删掉冗余内容;单字符方向标识(比如"W")因为不满足"两字母"的匹配条件,会被完整保留。

运行结果

#> # A tibble: 3 × 2
#>   address_bad      address_good    
#>   <chr>            <chr>           
#> 1 1 DA DATALPA PL  1 DATALPA PL    
#> 2 231 ST STERN AVE 231 STERN AVE   
#> 3 943 W WESTON AVE 943 W WESTON AVE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:36:43