regex - 删除字符串中第一个逗号之前的句点

标签 regex r gsub

如何删除这些字符串中第一个逗号之前的句点?

 xx <- c("fefe.3. fregg, ff, 34.gr. trgw", 
          "fefe3. fregg, ff, 34.gr. trgw",
          "fefe3 fregg, ff, 34.gr. tr.gw")

期望的输出:
    "fefe3 fregg, ff, 34.gr. trgw"
    "fefe3 fregg, ff, 34.gr. trgw"
    "fefe3 fregg, ff, 34.gr. tr.gw" 

我从 gsub("\\.","", xx)) 开始, 删除所有句点。如何更改它以指定“仅在第一个逗号之前的句点”?

最佳答案

我觉得这是作弊,但它适用于这个简单的例子......

xx <- c("fefe.3. fregg, ff, 34.gr. trgw", 
        "fefe3. fregg, ff, 34.gr. trgw",
        "fefe3 fregg, ff, 34.gr. tr.gw")

temp <- strsplit(xx, ",")

sapply(seq_along(temp), function(x) {
  t1 <- gsub("\\.", "", temp[[x]][1])
  paste(t1, temp[[x]][2], temp[[x]][-c(1, 2)], sep = ",")
})
# [1] "fefe3 fregg, ff, 34.gr. trgw"  "fefe3 fregg, ff, 34.gr. trgw" 
# [3] "fefe3 fregg, ff, 34.gr. tr.gw"

上面的基本思想是,既然你只会在逗号之前的第一个块中寻找句点,为什么不将它拆分并使用基本的 gsub在那,然后把碎片放回原处。不太可能有效率....

关于regex - 删除字符串中第一个逗号之前的句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17387482/

相关文章:

r - 使用 R 对分组变量进行非线性优化

c# - 正则表达式和 C# 检查范围数字 + 字符(可选)

regex - 使用 nginx 重定向捕获的正则表达式组

r - 如何使用 [r] data.table 执行与前一行相关的多个逐行操作(如果可能)

r - 如何将城市点映射到美国 map 并移动坐标以留出区域之间的空间?

r - 代入计算结果

r - 仅在 R 中从文本中删除单个正斜杠

R 中的正则表达式 - 替换 str

python - 如何从 Object dtype 中提取特定的单词/数值?

正则表达式匹配 url 不包含给定的字符串集