如果 R 中满足条件,则正则表达式删除字符串中的逗号

标签 r regex gsub

如果满足以下条件,我想从地址列表中删除逗号:1) 逗号跟随任意数字,或 2) 逗号跟随带有单个字母的数字。

如果我的输入如下所示:

library("data.table")
Input <- data.table(Var = c("43, Badger Drive", "45A, Badger Drive",
                            "45BB, Badger Drive", "Zebra House, 200A Badger Drive", 
                            "F27, 20 Badger Drive", "78, Badger 24 Drive"))

我的输出将如下所示:

Output <- data.table(Var = c("43 Badger Drive", "45A Badger Drive", 
                            "45BB, Badger Drive"," Zebra House, 200A Badger Drive", 
                            "F27, 20 Badger Drive", "78 Badger 24 Drive"))

这几乎达到了我的第一个标准,但删除了第 5 行 F27 之后的逗号,我也不确定如何修改它来达到我的第二个标准:

Input[, New_Input := gsub("([[:digit:]]),", "\\1", Input$Var)]

最佳答案

你可以使用

gsub("([[:digit:]][[:alpha:]]?),", "\\1", Input$Var)

这里,

  • ([[:digit:]][[:alpha:]]?) - 捕获组 1:数字和可选字母
  • , - 逗号

匹配项仅替换为第 1 组内容,因此仅当逗号前面紧邻数字或数字+字母时才会删除逗号。

请参阅regex demo .

关于如果 R 中满足条件,则正则表达式删除字符串中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63385498/

相关文章:

r - 在自定义 R 函数中预分配内存以提高性能(使用 dplyr)

R:水平图上的叠加图

java - 数组中以字符串开头的单词

regex - 字符串中除 `in` , `the` `of` 之外的每个单词的首字母大写

r - 我如何加速这个 _for_ 循环?用data.table + lapply?

javascript - 使用 rhandsontable 进行数字和条件格式设置

javascript - 如何使用正则表达式来匹配 ctx​​.url,如 koa 中的 ''/?id=xxx '' and "/"?

regex - Codeigniter 路由正则表达式

ruby-on-rails - Ruby、gsub 和正则表达式

r - 根据条件更改列中的第一个数字