[英]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.