我想选择一些与正则表达式匹配的文件。 文件是例如:为什么找到-regex不接受我的正则表达式?
4510-88aid-50048-INA.txt
4510-88nid-50048-INA.txt
xxxx-05xxx-xxxxx-INA.txt
我要匹配这个正则表达式的所有文件:
.*[\w]{4}-05(?!aid)[\w]{3}-[\w]{5}-INA\.txt
在我看来,这必须要在上述情况xxxx-05xxx-xxxxx-INA.txt
。 使用像RegexTester这样的工具,一切都很完美。 使用bash命令find -regex
似乎不适合我。 我的问题是,为什么?
我想不通,我使用:
find /some/path -regex ".*[\w]{4}-05(?!aid)[\w]{3}-[\w]{5}-INA\.txt" -exec echo {} \;
但印什么...任何想法?
$ uname -a
Linux debmu838 2.6.5-7.321-smp #1 SMP Mon Nov 9 14:29:56 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
并不是所有的正则表达式引擎等。语法和功能更改。我不确定'find'是否支持java正则表达式语法(这是你测试的)。它可能不会。 –
为什么你一开始就有'。*'?看起来不像你需要的那样。 –
。*用于上述示例中的文件名之前的文件路径 – Tobias