正则表达式匹配具有特殊格式的文件

时间:2010-07-01 16:26:32

标签: grep

我有以下文件名称: 当x是数字时(x可以是0到100之间的数字)

fileX
fileXblabla
fileX.X
fileX.Xblabla

例如

fileX --> file1
fileXblabla --> file1blabla
fileX.X --> file5.3
fileX.Xblabla --> file2.9blabla

我的问题是如何匹配目录下的以下各种文件(通过ls和正则表达式或其他东西)

例如

 fileX

在目录下,我们希望获取所有文件:file1或file2或file3 ... ..file100

 fileXblabla

在目录下我们想要获取所有文件:file1bla或file2bla或file3bla ... ..file100bla

 fileX.X

在目录下,我们希望获取所有文件,例如:file1.1或file2.1或file3.1 ...... ..file100.100

 fileX.Xblabla

在目录下我们想要获取所有文件:file1.1bla或file2.1bla或file3.1bla ... ..file100.100bla

2 个答案:

答案 0 :(得分:0)

以下REGEX将匹配所有4种模式:

file(\d{1,3})(\w*)(?:\.(\d{0,3})(\w*))?

fileX 中的 X 将在后面引用 1
fileXblabla 中的 blabla 将在后面引用 2
fileX.Y 中的 Y 将在后面引用 3
fileX.Yblabla 中的 blabla 位于后面参考 4

如果您需要更多帮助,请加注添加评论。

答案 1 :(得分:0)

试试这个:

^file(100|[1-9]\d|\d)(\.(100|[1-9]\d|\d))?(bla)*$