正则表达式匹配任何文件名掩码

时间:2013-05-22 10:20:32

标签: regex file sequence mask

我必须编写一个匹配任何序列文件名掩码的正则表达式,例如:

三个测试案例:
object.scrn_1-2_0006 - 应与object.scrn_1-2匹配 object.scrn0006 - 应与object.scrn匹配 object0006 - 应与object

匹配

其中0006是序列中的文件数,从0000到任意数字。

可选地,第二个表达式应与此数字匹配 虽然很容易匹配第二个和第三个,但我发现很难匹配第一个。

我使用以下正则表达式来匹配名称:
[a-zA-Z0-9_\-\.]+[_\-\.]?\d*

和这个匹配数字:
[_\-\.]?[123456789][0-9]*\b

我真的很感激任何帮助。感谢。

2 个答案:

答案 0 :(得分:0)

/ ^(。+)\ d {4)$ /应该在 object.scrn_1-2_0006 的情况下做你需要的,object.scrn_1-2_将在第一个寄存器中

答案 1 :(得分:0)

您可以使用单个正则表达式匹配并捕获所需的部分。例如,您可以使用

(^.*)(\d{4}$)

(^.*)捕获字符串开头的每个字符;

(\d{4}$)捕获4位数字(\d表示一个数字字符,而{4}表示正好是4位数。)

第一个被捕获的组是最后4个数字之前的所有内容,第二个被捕获的组包含4个数字。

如果可以有不同数量的数字,只需将{4}转为+

(^.*)(\d+$)