用于从文件名中提取电影名称的正则表达式

时间:2009-05-28 01:18:40

标签: regex

想象一下,如果您将使用以下字符串:

“伟大的电影(1999)DVDRip.avi”

我希望通过正则表达式提取字符串“A Great Movie”,但努力为此获得正确的正则表达式。

我会使用这种解析各种长度的文件名。

谢谢!

3 个答案:

答案 0 :(得分:4)

此语法是围绕.NET正则表达式解析器设计的(在其他正则表达式引擎中可能有所不同):

^(?<MovieName>.+)\((?<Year>\d+)\)(?<AdditionalText>[^\.]*)\.(?<Extension>[^\.]*)$

您可以使用此语法来获取所需的数据:

string line = "Movie Text";
Match match = Regex.Match(line);
match.Groups["MovieName"].Value;

如果需要,您还可以提取Year,AdditionalText和Extension。

答案 1 :(得分:1)

假设括号前面有一个空格:

^(.+)\s\(.+

答案 2 :(得分:0)

匹配第一个括号的所有内容

^([^(]+) 

比Ben的选择更快(略微)

的Python:

>>> import re
>>> re.compile("^([^(]+)").match("A Great Movie (1999) DVDRip.avi").groups()
('A Great Movie ',)