[英]Regex match up to the end of a standard pattern
我正在開發一個用於管理下載的電視節目文件名的應用程序。 基本上,它將搜索目錄並清理文件名,刪除句號之類的內容並用空格替換,並以易於識別的方式(例如,S01E13)刪除文件名末尾的描述。 (.1080p.BluRay.x264-ROVERS)
我想做的是制作一個用於C#的正則表達式,以提取SnnEnn之前的所有內容(其中n是任何正整數)。 但是,我不知道太多正則表達式可以幫助我前進
例如,如果我的文件名是TV.Show.S01E01.1080p.BluRay.x264-ROVERS,則查詢將僅獲取TV.Show.S01E01,而不管模式前有多少個單詞,因此它可能是TV.Show。 .On.ABC.S01E01,它仍然可以工作。
謝謝你的幫助 :)
嘗試這個
string input = "TV.Show.S01E01.1080p.BluRay.x264-ROVERS";
string pattern = @"(?'pattern'^.*\d\d[A-Z]\d\d)";
string results = Regex.Match(input, pattern).Groups["pattern"].Value;
沒有正則表達式還有更明顯的方法:
string GetNameByPattern(string s)
{
const string pattern_length = 6; //SnnEnn
for (int i = 0; i < s.Length - pattern_length; i++)
{
string part = s.SubString(i, pattern_length);
if (part[0] == 'S' && part[3] == 'N') //candidat
if (Char.IsDigit(part[1]) && Char.IsDigit(part[2]) && Char.IsDigit(part[4]) && Char.IsDigit(part[5]))
return s.SubString(0, i + pattern_length);
}
return "";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.