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

如何在R语言中给城市名后的指定关键词及数字前添加", TX"

解决城市名插入", TX"的正则问题

你的原代码正则逻辑有两个核心问题:

  1. 正向预查的方向搞反了——你写的是找前面包含关键词/数字的位置,但实际需要找后面跟着这些内容的位置,也就是城市名和后续后缀之间的空格。
  2. 数字部分的匹配完全错误——原正则里的^([0-9]+)是匹配行首的数字,但你的数字后缀是在城市名之后,这个规则根本对应不上场景。

下面是修正后的代码,能完美匹配你给出的所有测试案例:

library(dplyr)
library(stringr)

DATA %>%
  mutate(col = str_replace(col, "\\s+(?=(?i)(Util|Municipal|Police|Water|\\d+))", ", TX "))

正则逻辑解释

  • \\s+:匹配城市名和后续内容之间的1个或多个空格
  • (?=(?i)(Util|Municipal|Police|Water|\\d+)):正向预查,确保后面跟着的是以下内容((?i)表示不区分大小写):
    • Util/Municipal/Police/Water任意一个关键词
    • \\d+:一个或多个数字(对应带数字后缀的情况)
  • 把匹配到的空格替换成, TX ,就完成了在城市名末尾插入目标内容的操作。

测试后你的原始数据会被转换成期望的结果:

Col
City of Fake, TX Municipal Court
City of Pretend, TX Water Utility
City of Not Real, TX Police Department
Fraud Hill, TX Utility
El Imagined, TX 344th District Court

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:22:56