正则表达式 - 文件名可能包含parantheses组

时间:2014-05-05 11:13:06

标签: regex

我希望在不使用parantheses的情况下匹配主名称和文件计数。

例如:

8680733046449.png

8680733046449(3).png

这些文件具有相同的名称。我想分隔第二个文件的名称(8680733046449)和文件数(3)(没有parantheses)。

如果文件名不包含任何parantheses,只需匹配名称。

我的正则表达式是:

/^(.*)\s?\((\d+)\)\.png$/

此正则表达式匹配具有parantheses但没有。

的文件

在此测试:http://www.regexr.com/38pup

2 个答案:

答案 0 :(得分:1)

您需要为名称部分使用非贪婪量词。否则,它将匹配空格和括号。您还需要使括号中的部分可选。

/^(.*?)\s?(\((\d+)\))?\.png$/
     ^

答案 1 :(得分:0)

如果我很了解你,我认为这对你有用:

^(.+)(\s?\((\d+)\))?\.png$

请注意,我在第一个点之后更改了*以避免空文件名。

亲切的问候。