gpt4 book ai didi

regex - R 中 list.files 中的否定前瞻断言

转载 作者:行者123 更新时间:2023-12-04 03:50:48 24 4
gpt4 key购买 nike

我尝试列出目录中不以“Camera1”开头但以“.png”结尾的所有文件。为此,我在 R 中的 list.files 中使用了正则表达式。
为了排除“Camera1”,我尝试使用负前瞻,但它不起作用。我的错误在哪里? ;)

list.files(pathToDirectory, pattern = "^(?!Camera1).*\\.png")

我收到错误: invalid 'pattern' regular expression提前致谢 :)

最佳答案

看起来默认引擎不喜欢环视,所以你需要使用 Perl。这有效:

dat <- c("Camera1.png", "Camera2.png", "hello.png", "boo")
grep("^(?!Camera1).*\\.png", dat, value=T, perl=T)
# [1] "Camera2.png" "hello.png"

但这不会:
grep("^(?!Camera1).*\\.png", dat, value=T)
# invalid regular expression '(?<!Camera1)\.png', reason 'Invalid regexp'

所以,做你想做的事:
grep("(?<!Camera1)\\.png", list.files(), perl=T, value=T)

关于regex - R 中 list.files 中的否定前瞻断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com