【问题标题】:time pattern in list.files function (R)list.files 函数中的时间模式 (R)
【发布时间】:2018-10-27 19:28:14
【问题描述】:

我正在尝试从路径中获取子目录列表。这些子目录的时间模式为月\日\小时,即03\21\11。 我天真地使用了以下内容:

 list.files("path",pattern="[0-9]\[0-9]\[0-9]", recursive = TRUE, include.dirs = TRUE)

但它不起作用。 如何在这里为 digitdigit\digitdigit\digitdigit 模式编码? 谢谢

【问题讨论】:

  • 也许你的模式应该类似于[0-9]{2}\[0-9]{2}\[0-9]{2}。这行得通吗?
  • [0-9] 只匹配一个数字。您需要在每个之后使用量词(+{2})。此外,您需要使用另一个反斜杠 `\` 来转义反斜杠
  • 如果在不同的配置中不太可能有任何数字和反斜杠,您也许可以使用 "[\\d\\]+" 逃脱。

标签: r regex


【解决方案1】:

此正则表达式适用于 10\11\18

(\d\d\\\d\d\\\d\d)

【讨论】:

    【解决方案2】:

    我认为您可能需要对正则表达式进行延迟匹配,除非总是有两位数 - 在这种情况下,其他响应看起来是有效的。

    如果您可以提供文件名字符串的向量,那将非常有帮助。

    捕获反斜杠令人困惑,我发现这个帖子很有帮助:R - gsub replacing backslashes

    我的猜测是这样的:'[0-9]+?\\\\[0-9]+?\\\\[0-9]+'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 2021-09-13
      相关资源
      最近更新 更多