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

list.files函数pattern参数无法识别括号的问题咨询

问题原因与解决方法

这不是list.files()的问题,是你对参数pattern的匹配规则理解有误:

  • list.files()的pattern参数默认采用正则表达式模式,而括号()在正则语法里是「分组匹配」的特殊元字符,不是普通文本字符。你直接写带括号的文件名,会被R解析成正则规则,自然匹配不到实际文件名里的括号,所以返回character(0)。

两种解决办法

方法1:转义特殊字符

把文件名里的(换成\\(,)换成\\)(R里正则转义需要双反斜杠):

list.files(path = paste0(EDOS_test[i], "/shp"), 
           pattern = "Lomerios y Planicies con selva baja caducifolia \\(de la Sierra de Cucharas\\)", 
           full.names = TRUE)

方法2:开启固定字符串匹配

给list.files()加fixed=TRUE参数,此时pattern会被当作纯文本匹配,不需要转义任何特殊字符:

list.files(path = paste0(EDOS_test[i], "/shp"), 
           pattern = "Lomerios y Planicies con selva baja caducifolia (de la Sierra de Cucharas)", 
           full.names = TRUE,
           fixed = TRUE)

两种方法都能精准匹配你要的那4个文件,不会带出另一组区域的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:40:12