想象一下,如果您将使用以下字符串:
“伟大的电影(1999)DVDRip.avi”
我希望通过正则表达式提取字符串“A Great Movie”,但努力为此获得正确的正则表达式。
我会使用这种解析各种长度的文件名。
谢谢!
答案 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 ',)