如何实现复杂字符串与含指定变量的简单字符串匹配?需包含全部变量
解决方案
拆分变量列表
先把简单字符串里的变量按逗号拆成单独的向量:
vars <- strsplit(string_simpler, ",")[[1]]
编写匹配函数
把检查逻辑封装成函数,一次性验证所有变量是否都在复杂字符串里:
match <- function(string_complicated, string_simpler) { vars <- strsplit(string_simpler, ",")[[1]] all(sapply(vars, function(var) grepl(var, string_complicated))) }
测试效果
# 全变量匹配的情况 string_complicated <- "asfdalksdVARIABLE1/djdj/.VARIABLE2?jjjVARIABLE3yuuu" string_simpler <- "VARIABLE1,VARIABLE2,VARIABLE3" match(string_complicated, string_simpler) # 输出:TRUE # 缺少变量的情况 string_simpler_partial <- "VARIABLE1,VARIABLE2" match(string_complicated, string_simpler_partial) # 输出:FALSE
原理说明
strsplit负责把逗号分隔的变量串拆成单个变量的列表,方便逐个检查grepl用来判断单个变量是否存在于复杂字符串中,返回TRUE或FALSEall会确保所有变量的检查结果都是TRUE时,才返回最终的TRUE,只要有一个变量没找到就返回FALSE
内容的提问来源于stack exchange,提问作者August Edwards
相关产品推荐
相关产品推荐

