如果满足以下条件,我想从地址列表中删除逗号: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/