逗号分隔项目的正则表达式

MFR

我有以下数据集

df <- data.frame(id = c(1,2,3), names = c( "Adam Jones, John David, Maddy Kones", 
"Adam Smith, Maddy Kones, John David", "Maddy Kones, John Peterson, Adam Smith"))

那是

我希望看到“约翰”紧接在“亚当”之后

所以我的输出是

id                              names
1   Adam Jones, John David, Maddy Kones

我不知道该如何使用正则表达式。我到目前为止已经尝试过

output <- df [grep("Adam" [^,]* "John", df$names),]
蒂姆·比格莱森(Tim Biegeleisen)

一种基本的R方法是grepl与适当的模式一起使用

Adam\b[^,]*,\\s*John.*

这表示要匹配,Adam然后匹配单词边界和直到第一个逗号的所有内容,然后紧接着John是下一个术语。我们没有任何丑陋的例子,因为如果约翰必须跟随亚当,这意味着将始终有一个逗号分隔这两个名字。

码:

df[grepl("Adam\\b[^,]*,\\s*John.*", df$names), ]

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章