即时寻找一个正则表达式来检查,或者是电视节目或只是一部电影在"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].){*}")
但它看起来并不像视觉工作室那么高兴... 确实有任何问题吗?
即时寻找一个正则表达式来检查,或者是电视节目或只是一部电影在"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].){*}")
但它看起来并不像视觉工作室那么高兴... 确实有任何问题吗?
快乐下载..
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教程。
;也许有点晚,但这应该工作。
我有更多我可以分享的内容,但这应该足以让你开始。
对于这个表达式,该展会应该是在格式为:
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();
嗯,这看起来很合法... – Clive
它为什么重要,如果*的Visual Studio *是 “快乐” 与您正则表达式? –
我的意思是它不起作用... – jorne