如果R中满足条件,则Regex可删除字符串中的逗号



如果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"))

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

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

您可以使用

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

这里,

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

匹配项仅替换为Group 1内容,因此只有逗号前面紧跟数字或数字+字母时才会删除逗号。

请参阅regex演示。

最新更新