gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:38:53 24 4
gpt4 key购买 nike

我有以下数据集

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

就是

并且我希望看到“John”紧跟在“Adam”之后的

所以我的输出将是

id                              names
1 Adam Jones, John David, Maddy Kones

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

output <- df [grep("Adam" [^,]* "John", df$names),]

最佳答案

这里的一种基本 R 方法是使用具有适当模式的 grepl:

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

这表示匹配 Adam 后跟单词边界和第一个逗号之前的任何内容,紧随其后的是 John 作为下一个词。我们没有任何丑陋的边缘情况,因为如果 John 必须跟在 Adam 之后,这意味着总是有一个逗号分隔两个名字。

代码:

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

Demo

关于用逗号分隔的项目的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47192654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com