有没有更好的方法来进行字符串条件匹配?例如, 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"
答案 0 :(得分:4)
一种方法 - 使用分组构造来组合单词集:
grep('(?=.*farm)(?=.*(?:rose|floral|tree))', str, value = TRUE, perl = TRUE)
# [1] "rose farm" "farm floral" "tree farm"