1

我有一个可以命名为类似的文件,wh-201310301615.tar.gz但它总是有-201310301615.tar.gz部分。我想查找该字符串是否在文件名中并仅获取数字(因此-并且.tar.gz必须存在)。目前我使用下一个模式来找到它:

-\d+\.tar\.gz

但我很确定有更好的方法可以做到这一点并且只获取数字(目前我必须修剪字符串)。有什么建议么?

编辑:我正在使用 python,因此它是引擎。

4

3 回答 3

2

我不完全确定您使用的是什么正则表达式引擎,但假设我已经理解您的问题,这应该适用于任何支持环视的方法。

(?![^-]+-)\d+(?=\.tar\.gz)
于 2013-10-31T16:25:37.883 回答
2

试试这个模式。

(?<=-)(\d+)(?=\.tar\.gz)

演示

于 2013-10-31T16:28:49.037 回答
0

您可以使用 find 和一个小脚本来完成。

unix> ls
wh-201310301615.tar.gz
wh-201310301616.tar.gz

unix> find . -name "wh-*.tar.gz" -exec find_it {} \;
201310301615
201310301616

unix> cat find_it
#!/bin/sh
echo $1 | cut -c 6-17
于 2013-10-31T16:38:36.750 回答