繁体   English   中英

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

[英]Regex to remove commas in string if criteria are met in R

如果 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 看起来像这样:

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:一个数字和一个可选字母
  • , - 逗号

匹配只替换为第 1 组的内容,因此只有在逗号前面紧跟一个数字或数字+字母时才会删除逗号。

请参阅正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM