使用正则表达式递归匹配点文件

时间:2017-01-23 21:38:00

标签: regex

我试图写一个正则表达式来递归地匹配路径中的任何点文件。我开始时:

^[.]

但这与long/path/here/.dotfile的情况不符。它也匹配.本身,这是不正确的。正则表达式应与.匹配,然后至少需要一个字符。

2 个答案:

答案 0 :(得分:2)

^\/?(?:\w+\/)*(\.\w+)

^ - 表示字符串
的开头 \/? - /之前的可能性 (?:\w+\/)* - 非捕获组,用于查找子目录路径的0-inf匹配项(例如long/path/.../(\.\w+) - 捕获组以获取以.开头的路径末尾的任何文件

Regex Test

答案 1 :(得分:0)

我能想到的方式是2个正则表达式

  1. ^[\.]匹配根目录中不以.
  2. 开头的任何内容
  3. (?<=\/)\.匹配与/后跟.匹配的所有子目录。
  4. 测试用例:

    .foo
    foo.a
    /a/.foo
    /a/foo.a
    /.foo/.asdafsdf