2011-11-30 77 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你有任何電影文件名稱的正則表達式標準嗎? –