Это само собой, файлик рядом положит и переименовать)Может лучше бакап?
Можете считать, что я упоролс0, но вот немного подшаманил. Должно работать хорошо, если правила обрабатываются по порядку:
<strips>
<strip>\s?(\(|\[)[\w'+-. ]{2,14}(\)|\])</strip>
<strip>(bd|blue|hdtv|hd|web|dvd|cam|ts|br|vod|dvd|sat|dvb|dub|tele|xvcd|vcd)(-|\.)?(ray|rip|rp|dl|scr|ts|tc|tv|r5|wp|cine|sync)</strip>
<strip>(240|360|480|540|720|1080|2160|4k|x263|x264|h263|h264|xvid|divx|xvid|-?ac3|-?acc|-?avc|vc-?1|rus|ukr|eng)(p|i)?</strip>
<strip>(HD|iron|nnm-?)(club|tracker|torrent)(\.ru|\.org|\.com|\.su|\.net|\.tv)?</strip>
<strip>\[?rutracker\.org\]?</strip>
<strip>HELLYWOOD</strip>
<strip>(\.\d{3,4}MB)</strip>
<strip>[_.]\d\.\d{2}([^\d\.]|$)</strip>
<strip>[._]by[._][^._]+?$</strip>
<strip>(\.|_| ){2,5}</strip>
</strips>
Они обрабатываются скопом т.е. все вместеесли правила обрабатываются по порядку
Там точно всё правильно? У меня на каждый фильм при поиске в лог вываливает ошибку, ругается как раз на [\.\s\_]+на этот блок:
Вторая строка забыт открывающий символ < перед stripЕсли где косяк - критикуйте.
[\+\s]*\s?(\(|\[)[\w'+-. ]{2,14}(\)|\])|[\+\s]*(bd|blue|hdtv|hd|web|dvd|cam|ts|br|vod|dvd|sat|dvb|dub|tele|xvcd|vcd)(-|\.)?(ray|rip|rp|dl|scr|ts|tc|tv|r5|wp|cine|sync)|[\+\s]*(240|360|480|540|720|1080|2160|4k|x263|x264|h263|h264|xvid|divx|xvid|-?ac3|-?acc|-?avc|vc-?1|rus|ukr|eng)(p|i)?|[\+\s]*(HD|iron|nnm-?)(club|tracker|torrent)(\.ru|\.org|\.com|\.su|\.net|\.tv)?|[\+\s]*\[?rutracker\.org\]?|[\+\s]*HELLYWOOD|[\+\s]*(\.\d{3,4}MB)|[\+\s]*[_.]\d\.\d{2}([^\d\.]|$)|[\+\s]*[._]by[._][^._]+?$|[\+\s]*(\.|_| ){2,5}
Год на многих фильмах уйдет (если он указан в скобках) ... это не есть хорошо т.к. есть фильмы с одинаковым названием но разных годов.Основной принцип в том, чтобы сначала удалялись любые (все) теги в скобках, независимо от того, что в них написано.
Вроде да, собачка не пропала?Там точно всё правильно? У меня на каждый фильм при поиске в лог вываливает ошибку, ругается как раз на [\.\s\_]+
rx_strip = @"[\.\s\_]+";
Проверить как оно будет в жизни, там решатьПросто если делать по порядку, то оно будет более правильно убирать, нежели мы выполним второе правило перед первым - тогда останется куча квадратных скобок, на приме. А если на один и тот же текст будет претендовать 2 и более правила и как-то же выполнится одно вместо другого раньше?
Точный лог уже показать не могу, удалил, пока поставил так:Как ругается?
if (!string.IsNullOrEmpty(rx_strip)) {
searchString = Regex.Replace(searchString, rx_strip, string.Empty, RegexOptions.IgnoreCase);
}
rx_strip = "[\.\s\_]+";
Свежо придание..Хлопцы, а может ну его на и подождем апи?
<strips>
<strip>[\(\[]?(240|360|480|720|1080|1280|2160)(p|i)?[\(\]]?</strip>
<strip>([\.\_\s\(\[]|^)(rus|ukr|eng|(hard|soft)?sub)([\.\_\s\)\]]|$)</strip>
<strip>(h|x)26(3|4|5)</strip>
<strip>VC-?1</strip>
<strip>-?AVC</strip>
<strip>-?AC(3|C)</strip>
<strip>(Xvid|DivX)</strip>
<strip>X?VCD</strip>
<strip>Tele(cine|sync)</strip>
<strip>BluRay</strip>
<strip>HD(TS|TV)</strip>
<strip>(DVD|VHS)Scr(eener)?</strip>
<strip>DVD(-?(5|9))</strip>
<strip>(Super|HQ[\.\s\_]?)DVD</strip>
<strip>(((i|n)?VOD|CAM|SAT|DS|VHS|(PD)?TV|IPTV|DVB(-T[\s\.\_]?)?|DT(heater)?|L(aser)?D(isc)?|WEB|BD|B(lu)?R(ay)?|HD(TV)?|(HD-?)?DVD)-?((DL-?)?Rip|DL|Remux))</strip>
<strip>([\.\_\s\(\[]|^)(S?CAM|(Super-?)?TS|TC|SCR|R5|WP)([\.\_\s\)\]]|$)</strip>
<strip>([\.\_\s\(\[]|^)(((A|S|1|2|D|M)VO)|((D|S)UB))([\.\_\s\)\]]|$)</strip>
<strip>(\.\d{3,4}MB)</strip>
<strip>[_.]\d\.\d{2}([^\d\.]|$)</strip>
<strip>[\.\(\[](Extended|Director's.cut|Unrated)[\)\]]?</strip>
<strip>[\[\(]?(((ru-?)?(t(racke|o)r(rent)?)\.([a-z]{2,3})(?![a-z]))|((HD|nnm|IRON)-?Club|HELLYWOOD|iTunes))[\]\)]?</strip>
<strip>[._]by[._][^._]+?$</strip>
</strips>
Ну тогда можно попробовать:Конкретно на 27 символ, вроде это нижнее подчёркивание у меня, его вроде экранировать не надо, оно мета-символом не является
rx_strip = "[\.\s\_]+";
rx_strip = @"[\.\s_]+";
rx_strip = "[\.\s_]+";