R 布尔运算;通配符文本匹配

R 布尔运算;通配符文本匹配,r,boolean-logic,text-analysis,R,Boolean Logic,Text Analysis,有人知道在某些web界面中实现的支持复杂布尔+通配符文本匹配的R包吗?即使用和或*?()/{}运算符?例如,可以处理以下格式查询的函数(所有示例都返回TRUE): 要求相同,但没有收到太多的兴趣。我知道stringi包-例如stri\u detect\u regex(s,c(“fox”,“dog”)),可能与all()/any()组合在一起,但它似乎无法处理嵌套逻辑。试图将这种复杂的查询结构转换为正则表达式似乎是自杀 非常感谢您的建议。我自己写了一些东西-请看我自己写了一些东西-请看将使用一种结

有人知道在某些web界面中实现的支持复杂布尔+通配符文本匹配的R包吗?即使用
*
()
/
{}
运算符?例如,可以处理以下格式查询的函数(所有示例都返回TRUE):

要求相同,但没有收到太多的兴趣。我知道
stringi
包-例如
stri\u detect\u regex(s,c(“fox”,“dog”))
,可能与
all()
/
any()
组合在一起,但它似乎无法处理嵌套逻辑。试图将这种复杂的查询结构转换为正则表达式似乎是自杀


非常感谢您的建议。

我自己写了一些东西-请看

我自己写了一些东西-请看

将使用一种结构,例如if(grepl(“fox”,s)==TRUE&grepl(“dog”,s)==TRUE)
if(grepl(“fox”,s)==TRUE;grepl(“dog”,s)==TRUE)
为你想要完成的工作而工作?像这样使用
any()
/
all()
重组你的语句将提供嵌套的求值
all(stri\u detect\u regex(s,“lazy”)、all(stri\u detect\u regex(s,“quick”)、any(stri\u detect\u regex(s,“fox”)、stri\u detect\u regex(s,“dog”))
谢谢Matt。我在寻找一个通用的解决方案,也就是说,不需要将这些函数串在一起。让我们看看是否还有其他人有建议。使用诸如
if(grepl(“fox”,s)==TRUE&grepl(“dog”,s)==TRUE)
if(grepl(“fox”,s)==TRUE | grepl(“dog”,s)==TRUE)
之类的结构是否能实现您试图实现的目标?使用
any()
/
all()重新构造语句
这样可以提供嵌套的求值
all(stri_detect_regex(s,“lazy”)、all(stri_detect_regex(s,“quick”)、any(stri_detect_regex(s,“fox”)、stri_detect_regex(s,“dog”))
谢谢Matt。我在寻找一个通用的解决方案,也就是说,不需要将这些函数串在一起。让我们看看是否还有其他人有建议。
s = "The quick brown fox jumps over the lazy dog"
boolean_match(s, "fox AND dog")
boolean_match(s, "fox OR bird")
boolean_match(s, "f?x")
boolean_match(s, "The quick * dog")
boolean_match(s, "lazy AND (fox OR bird)") # i.e. nested logic
boolean_match(s, "(pretty AND bird) OR (quick AND (fox OR squirrel))") # recursive