【发布时间】:2011-05-13 12:06:02
【问题描述】:
我有几个用例,我希望能够以声明方式指定一组文件,这些文件可能在路径的不同位置有数字(换句话说,数字可能因规范而异但我知道),并且能够在这些数字的范围内指定条件(例如,在 2 到 21 之间)将很有用。我知道可以在正则表达式中指定数字范围,但它很笨拙且容易出错,尤其是在补偿 '01' 与 '1' 之类的东西时。
我的问题是,有人知道提供类似功能的任何语言或库吗?这种东西看起来很通用,很有用,但我不记得看到过类似的东西,而且最初的谷歌搜索也没有发现任何东西。最常见的方法(实际上我想我以前用过)似乎是使用正则表达式组,然后用你正在使用的任何编程语言处理这些组,但这种一次性解决方案并不真正令人满意。
这是我可能正在寻找的示例:
'/base_path/section/(?<n>\d{2})/subsection/(?<i>\d+)/.+' with 3 < n <= 9 and i < 100
这将返回,例如,
/base_path/section/04/subsection/99/*
/base_path/section/09/subsection/000/*
但不是
/base_path/section/01/subsection/0/*
或
/base_path/section/05/subsection/01000/*
用例
我现在正在研究的主要用例是,我希望能够将文件集合分成两个或多个组以分别处理,部分基于中间出现的节号的路径。这是在以各种配置运行一些 NLP 实验的背景下,我希望能够以声明方式以灵活的方式指定要使用的文件,这样我就不会疯狂地尝试确保正确的文件是每次都在使用。
【问题讨论】: