r - 在 R 中使用负向后查找

标签 r regex-lookarounds

我将这些字符串放在一个文件夹中。假设该文件夹中还有其他类似的文件。

 [3] "/farm/chickens_industrial_meat_location_df.csv"   
 [4] "farm/goats_grassland_meat_location_df.csv" 

我正在尝试使用字符串 location_df 提取文件同时排除带有字符串 chickens 的文件& location_df .

我想我可以通过输入:list.files(pattern = "location_df(?<!(chickens))"来做到这一点

我的理解是,使用否定查找会删除具有 chickens 的字符串。 。我对正则表达式有什么不理解的地方以及我的问题的解决方案是什么。

最佳答案

带有 grepl 的选项是

str1[!grepl('chickens_.*location_df', str1) & grepl('location_df', str1)]
#[1] "farm/goats_grassland_meat_location_df.csv"

或者更简化的版本是

str1[!grepl('chickens_', str1) & grepl('location_df', str1)]

数据

str1 <- c("/farm/chickens_industrial_meat_location_df.csv",
        "farm/goats_grassland_meat_location_df.csv" )

关于r - 在 R 中使用负向后查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63476825/

相关文章:

Java Regex查找字符串中两个单词之间的时间

python - 一种匹配包含括号的 Lisp 字符的方法

javascript - 如何匹配非转义引号字符串和非引号字符串?

使用自定义顺序对行重新排序

r - 如何从POSIXct和POSIXlt对象中提取正确的时区?

r - 如何使用 fct_reorder 对数据帧中的因子重新排序?

javascript - 用于匹配 N 位数字加连续数字的正则表达式

java - java.util.regex 引擎中奇怪的正向先行行为

python - 将公司名称列表变成股票行情

r - 如何防止 RStudio 将空格变成制表符?它似乎忽略了我的全局选项设置