R grep与';和';逻辑

R grep与';和';逻辑,r,R,我在一台服务器上使用RJDBC,该服务器的维护人员经常更新jar版本。由于RJDBC需要类路径,因此当路径中断时会出现问题。我的情况是偶然的,最新的JAR总是在同一个目录中,但版本号会发生变化 我试图在R中使用一个简单的grep函数,根据带有和逻辑的正则表达式来隔离我需要的jar,但是R让这变得异常困难 演示R中的grep如何使用OR逻辑的运算符运行,但我似乎找不到类似的AND逻辑运算符 下面是一个例子: ## Let's say I have three jars in a directory

我在一台服务器上使用
RJDBC
,该服务器的维护人员经常更新jar版本。由于
RJDBC
需要类路径,因此当路径中断时会出现问题。我的情况是偶然的,最新的JAR总是在同一个目录中,但版本号会发生变化

我试图在R中使用一个简单的
grep
函数,根据带有
逻辑的正则表达式来隔离我需要的jar,但是R让这变得异常困难

演示R中的
grep
如何使用OR逻辑的
运算符运行,但我似乎找不到类似的AND逻辑运算符

下面是一个例子:

## Let's say I have three jars in a directory
jars <- list.files('/the/dir')
> jars
[1] "hive-jdbc-1.1.0-cdh5.4.3-standalone.jar" "hive-jdbc-1.1.0-cdh5.4.3.jar" "jython-standalone-2.5.3.jar" 
##假设我在一个目录中有三个jar
罐子
[1] “hive-jdbc-1.1.0-cdh5.4.3-standalone.jar”“hive-jdbc-1.1.0-cdh5.4.3.jar”“jython-standalone-2.5.3.jar”
我想要的jar是“hive-jdbc-1.1.0-cdh5.4.3-standalone.jar”-我如何在grep中使用和逻辑来提取它

## I know that OR logic is supported:
j <- jars[grep('hive-jdbc|standalone', jars)]
> j
[1] "hive-jdbc-1.1.0-cdh5.4.3-standalone.jar" "hive-jdbc-1.1.0-cdh5.4.3.jar" "jython-standalone-2.5.3.jar"

## Would AND logic look like the same format?
> jars[grep('hive-jdbc&standalone', jars)]
character(0)
##我知道支持OR逻辑:
j j
[1] “hive-jdbc-1.1.0-cdh5.4.3-standalone.jar”“hive-jdbc-1.1.0-cdh5.4.3.jar”“jython-standalone-2.5.3.jar”
##和逻辑看起来是一样的格式吗?
>jars[grep('hive-jdbc&standalone',jars)]
字符(0)
不出意料的是,最后一块不起作用。。。我在R中找到了一个for grep,但它没有显示AND运算符。有什么想法吗?

你可以试试

grep('hive-jdbc.*standalone', jars) # 'hive-jdbc' followed by 'standalone' 

grepl('hive-jdbc', jars) & grepl('standalone', jars) # 'hive-jdbc' AND 'standalone'