#pattern-matching #group #unix-shell #capture #file-path #glob-pattern #range

capturing-glob

Unix shell风格的全局变量扩展,允许在匹配时捕获组(即记住匹配字符范围)。

2个版本

使用旧Rust 2015

0.1.1 2018年2月9日
0.1.0 2017年12月15日

699文件系统

Download history 21/week @ 2023-11-24 92/week @ 2023-12-01 41/week @ 2023-12-08 40/week @ 2023-12-15 53/week @ 2023-12-22 51/week @ 2023-12-29 88/week @ 2024-01-05 92/week @ 2024-01-12 200/week @ 2024-01-19 225/week @ 2024-01-26 229/week @ 2024-02-02 95/week @ 2024-02-09 326/week @ 2024-02-16 224/week @ 2024-02-23 266/week @ 2024-03-01 88/week @ 2024-03-08

929 每月下载量
2 crates 中使用

MIT/Apache

74KB
1.5K SLoC

捕获全局变量

文档 | Github | Crate

支持匹配文件路径与Unix shell风格的模式,并在匹配时捕获组(类似于正则表达式中的捕获)。

用法

并将其添加到您的crate根目录中

extern crate capturing_glob;

示例

打印出/media/及其所有子目录中的所有jpg文件。

use capguring_glob::glob;

for entry in glob("/media/**/(*).jpg").expect("Failed to read glob pattern") {
    match entry {
        Ok(entry) => println!("Path {:?}, name {:?}",
            entry.path().display(), entry.group(1).unwrap()),
        Err(e) => println!("{:?}", e),
    }
}

注意:在上面的情况下,可能使用正则文件名匹配(即file_stem()),但是该库允许您在此处跳过unwraps,更重要的是,您可以使用如下用户定义的全局变量

  • (*)/.json
  • 测试/(*).规范.js
  • 文档/(部分-*).rst
  • /usr/share/zoneinfo/(*/*)

许可

许可协议为以下之一

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的,任何有意提交以包含在作品中的贡献,都将如上所述双重许可,没有任何附加条款或条件。

无运行时依赖