You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言list.files中用正则匹配aaaa80至aaaa06格式的文件?

解决方案

直接使用以下正则表达式作为pattern参数,就能精准筛选出aaaa80.txt至aaaa06.txt的文件:

all.files <- as.list(list.files(path="~/datos", pattern = "^aaaa(8[0-9]|9[0-9]|0[0-6])\\.txt$"))

正则表达式解释

  • ^:锁定文件名开头,确保必须以aaaa开头,避免匹配到类似xaaaaXX.txt的无效文件
  • (8[0-9]|9[0-9]|0[0-6]):拆分三个匹配分支,覆盖目标年份范围:
    • 8[0-9]:匹配80-89的两位数字
    • 9[0-9]:匹配90-99的两位数字
    • 0[0-6]:匹配00-06的两位数字
  • \\.txt$:锁定文件名结尾,确保必须以.txt结尾,避免匹配到aaaaXX.txt.bak这类带额外后缀的文件

你之前的正则问题所在

你用的aaaa[8-9,0]只限制了aaaa后的第一个字符是8、9或0,但完全没约束第二个字符,所以像aaaa07.txt这类文件会因为第一个字符是0被误匹配进来,达不到筛选要求。

内容的提问来源于stack exchange,提问作者Juan_Ramon Lacalle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:27:14