2011-11-30 79 views
1

即时寻找一个正则表达式来检查,或者是电视节目或只是一部电影在"24.S01E01.DVDRip.XviD-FoV.avi"正则表达式显示

举例S01E01搜索,所以我

bool check = Regex.IsMatch(filename, "^(*[a-z][A-Z][0-9].){*}S\\d\\dE\\d\\d(*[a-z][A-Z][0-9].){*}") 

但它看起来并不像视觉工作室那么高兴... 确实有任何问题吗?

+7

嗯,这看起来很合法... – Clive

+0

它为什么重要,如果*的Visual Studio *是 “快乐” 与您正则表达式? –

+0

我的意思是它不起作用... – jorne

回答

3

快乐下载..

foundMatch = Regex.IsMatch(SubjectString, @"^.*S\d\dE\d\d", RegexOptions.IgnoreCase); 

啊,现在我明白了。你想知道为什么你的正则表达式不工作..嗯..

(*[a-z][A-Z][0-9].)这是错误的。

你不能让量词指向任何东西。这里*贪婪地匹配0到n次没什么..错误。

([a-z][A-Z][0-9].) 

这意味着匹配一个字母从a-z后跟一个字母从A-Z后跟一个数字从0-9其次是任何东西。所以你正在寻找aA1#或其他东西。你大概真的打算写为:\w*它匹配0到A-ZA-Z0-9_] n次

{*} 

也是错的..匹配{多次尽可能其次}?请参阅上文,了解您的真正含义。

\\d\\d 

也错了。你的意思是匹配一个数字,但你实际上在这里搜索的是\,后面跟着字母d

等我建议你开始阅读一些regex教程。

+0

我的意思是它不起作用... – jorne

+0

@jorne什么不行? – FailedDev

3

;也许有点晚,但这应该工作。

我有更多我可以分享的内容,但这应该足以让你开始。

对于这个表达式,该展会应该是在格式为:
Show.Name.S01E02.Source.Quality.Etc组
展会名称 - S01E02 - 我的EP名称
Show.Name.S01.E03 .My.Ep.Name
Show.Name.S01E02E03.Source.Quality.Etc组
展会名称 - S01E02-03 - 我的EP名称
Show.Name.S01.E02.E03

var filename = ""; 

string Standard = @"^((?<series_name>.+?)[. _-]+)?s(?<season_num>\d+)[. _-]*e(?<ep_num>\d+)(([. _-]*e|-)(?<extra_ep_num>(?!(1080|720)[pi])\d+))*[. _-]*((?<extra_info>.+?)((?<![. _-])-(?<release_group>[^-]+))?)?$"; 

对于这个正则表达式,该节目应采用以下格式:
Show.Name.1x01.etc
显示名称 - 1x02
ShowName S01E01

string Fov = @"^((?<series_name>.+?)[\[. _-]+)?(?<season_num>\d+)x(?<ep_num>\d+)(([. _-]*x|-)(?<extra_ep_num>(?!(1080|720)[pi])(?!(?<=x)264)\d+))*[\]. _-]*((?<extra_info>.+?)((?<![. _-])-(?<release_group>[^-]+))?)?$" 

var regexStandard = new Regex('insert fov or standard here', RegexOptions.IgnoreCase); 

Match episode = regexStandard.Match(filename); 

var Showname = episode.Groups["series_name"].Value; 
var Season = episode.Groups["season_num"].Value; 
var Episode = episode.Groups["ep_num"].Value; 

Console.WriteLine(Showname + " " + Season + " " + Episode); 

Console.ReadLine(); 
+0

正是我在找什么...... – Fredrick

+2

不适用于'tv.show.name.104.some.group.x264.mp4'或任何有两组数字的东西,比如1600 Penn(1600.penn.108 .OTHER.mp4)。 – squeegee

+0

@Rob你有任何电影文件名称的正则表达式标准吗? –