【问题标题】:R - regular expression [duplicate]R - 正则表达式
【发布时间】:2013-11-01 00:43:06
【问题描述】:

我想列出目录中以“xyz”开头且第一个下划线后有 2 的所有文件。

例如,xyzfjd_2_34_1.pngxyz-39_2dog.jpg 可以工作,而xyzdog_3_dog.png 则不能工作。

我试过了

list.files(dir, pattern="^xyz*_2*");

这显然是错误的,主要是因为我什至不知道自己在做什么......

【问题讨论】:

    标签: regex r


    【解决方案1】:

    没有下划线的文件名匹配吗?我假设没有。

    我认为您正在为任何字符解释 *。相反,. 是任何字符。 * 是“0 次或多次”。所以你的模式^xyz*_2* 可以匹配xy_xyzzzz_222。它不会匹配 xyz1_2

    试试:

    list.files(dir, pattern = "^xyz[^_]*_2")
    
    • ^文件名开头
    • xyz
    • [^_]* 任何非_ 的字符组合(包括空字符串)
    • _2,下划线后跟一个 2。

    我不担心名称的其余部分,因为模式只需要匹配文件名的一部分。

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2022-06-16
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多