R-字符串中的多个条件匹配

时间:2015-11-02 03:07:46

标签: regex r

有没有更好的方法来进行字符串条件匹配?例如, farm 这个词与 rose floral tree 有条件匹配。理想情况下,我想在不重复农场

的情况下进行匹配
str = c('rose','farm','rose farm','floral', 'farm floral', 'tree farm')
grep("((?=.*farm)(?=.*rose)|(?=.*farm)(?=.*floral)|(?=.*farm)(?=.*tree))", str, value = TRUE,,perl = TRUE)

此回归

[1] "rose farm"   "farm floral" "tree farm"

1 个答案:

答案 0 :(得分:4)

一种方法 - 使用分组构造来组合单词集:

grep('(?=.*farm)(?=.*(?:rose|floral|tree))', str, value = TRUE, perl = TRUE)
# [1] "rose farm"   "farm floral" "tree farm"