[FixDanishLetterI] - Refact + Optimization for FixDanishLetterI.

This commit is contained in:
Ivandro Ismael 2016-04-07 19:32:32 +01:00
parent ab8c8f6874
commit e654d0f9c7
No known key found for this signature in database
GPG Key ID: A8832757DEFB7EDC
3 changed files with 207 additions and 643 deletions

View File

@ -5,677 +5,65 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
{
public class FixDanishLetterI : IFixCommonError
{
private static Regex MyRegEx(string inputRegex)
{
return new Regex(inputRegex.Replace(" ", "[ \r\n]+"), RegexOptions.Compiled);
}
public void Fix(Subtitle subtitle, IFixCallbacks callbacks)
{
var language = Configuration.Settings.Language.FixCommonErrors;
const string fixAction = "Fix Danish letter 'i'";
int fixCount = 0;
var littleIRegex = new Regex(@"\bi\b", RegexOptions.Compiled);
var iList = new List<Regex>
{ // not a complete list, more phrases will come
MyRegEx(@", i ved nok\b"),
MyRegEx(@", i ved, "),
MyRegEx(@", i ved."),
MyRegEx(@", i ikke blev\b"),
MyRegEx(@"\b i føler at\b"),
MyRegEx(@"\badvarede i os\b"),
MyRegEx(@"\badvarede i dem\b"),
MyRegEx(@"\bat i aldrig\b"),
MyRegEx(@"\bat i alle bliver\b"),
MyRegEx(@"\bat i alle er\b"),
MyRegEx(@"\bat i alle forventer\b"),
MyRegEx(@"\bat i alle gør\b"),
MyRegEx(@"\bat i alle har\b"),
MyRegEx(@"\bat i alle ved\b"),
MyRegEx(@"\bat i alle vil\b"),
MyRegEx(@"\bat i bare\b"),
MyRegEx(@"\bat i bager\b"),
MyRegEx(@"\bat i bruger\b"),
MyRegEx(@"\bat i dræber\b"),
MyRegEx(@"\bat i dræbte\b"),
MyRegEx(@"\bat i fandt\b"),
MyRegEx(@"\bat i fik\b"),
MyRegEx(@"\bat i finder\b"),
MyRegEx(@"\bat i forstår\b"),
MyRegEx(@"\bat i får\b"),
MyRegEx(@"\b[Aa]t i hver især\b"),
MyRegEx(@"\bAt i ikke\b"),
MyRegEx(@"\bat i ikke\b"),
MyRegEx(@"\bat i kom\b"),
MyRegEx(@"\bat i kommer\b"),
MyRegEx(@"\bat i næsten er\b"),
MyRegEx(@"\bat i næsten fik\b"),
MyRegEx(@"\bat i næsten har\b"),
MyRegEx(@"\bat i næsten skulle\b"),
MyRegEx(@"\bat i næsten var\b"),
MyRegEx(@"\bat i også får\b"),
MyRegEx(@"\bat i også gør\b"),
MyRegEx(@"\bat i også mener\b"),
MyRegEx(@"\bat i også siger\b"),
MyRegEx(@"\bat i også tror\b"),
MyRegEx(@"\bat i rev\b"),
MyRegEx(@"\bat i river\b"),
MyRegEx(@"\bat i samarbejder\b"),
MyRegEx(@"\bat i snakkede\b"),
MyRegEx(@"\bat i scorer\b"),
MyRegEx(@"\bat i siger\b"),
MyRegEx(@"\bat i skal\b"),
MyRegEx(@"\bat i skulle\b"),
MyRegEx(@"\bat i to ikke\b"),
MyRegEx(@"\bat i to siger\b"),
MyRegEx(@"\bat i to har\b"),
MyRegEx(@"\bat i to er\b"),
MyRegEx(@"\bat i to bager\b"),
MyRegEx(@"\bat i to skal\b"),
MyRegEx(@"\bat i to gør\b"),
MyRegEx(@"\bat i to får\b"),
MyRegEx(@"\bat i udnyttede\b"),
MyRegEx(@"\bat i udnytter\b"),
MyRegEx(@"\bat i vil\b"),
MyRegEx(@"\bat i ville\b"),
MyRegEx(@"\bBehandler i mig\b"),
MyRegEx(@"\bbehandler i mig\b"),
MyRegEx(@"\bbliver i rige\b"),
MyRegEx(@"\bbliver i ikke\b"),
MyRegEx(@"\bbliver i indkvarteret\b"),
MyRegEx(@"\bbliver i indlogeret\b"),
MyRegEx(@"\bburde i gøre\b"),
MyRegEx(@"\bburde i ikke\b"),
MyRegEx(@"\bburde i købe\b"),
MyRegEx(@"\bburde i løbe\b"),
MyRegEx(@"\bburde i se\b"),
MyRegEx(@"\bburde i sige\b"),
MyRegEx(@"\bburde i tage\b"),
MyRegEx(@"\bDa i ankom\b"),
MyRegEx(@"\bda i ankom\b"),
MyRegEx(@"\bda i forlod\b"),
MyRegEx(@"\bDa i forlod\b"),
MyRegEx(@"\bda i fik\b"),
MyRegEx(@"\bDa i fik\b"),
MyRegEx(@"\bDa i gik\b"),
MyRegEx(@"\bda i gik\b"),
MyRegEx(@"\bda i kom\b"),
MyRegEx(@"\bDa i kom\b"),
MyRegEx(@"\bda i så "),
MyRegEx(@"\bDa i så "),
MyRegEx(@"\bdet får i\b"),
MyRegEx(@"\bDet får i\b"),
MyRegEx(@"\bDet har i\b"),
MyRegEx(@"\bdet har i\b"),
MyRegEx(@"\bDet må i "),
MyRegEx(@"\bdet må i "),
MyRegEx(@"\b[Dd]et Det kan i sgu"),
MyRegEx(@"\bend i aner\b"),
MyRegEx(@"\bend i tror\b"),
MyRegEx(@"\bend i ved\b"),
MyRegEx(@"\b, er i alle\b"),
MyRegEx(@"\bellers får i "),
MyRegEx(@"\bEr i alle\b"),
MyRegEx(@"\ber i allerede\b"),
MyRegEx(@"\bEr i allerede\b"),
MyRegEx(@"\ber i allesammen\b"),
MyRegEx(@"\bEr i allesammen\b"),
MyRegEx(@"\ber i der\b"),
MyRegEx(@"\bEr i der\b"),
MyRegEx(@"\bEr i fra\b"),
MyRegEx(@"\bEr i gennem\b"),
MyRegEx(@"\ber i gennem\b"),
MyRegEx(@"\ber i glade\b"),
MyRegEx(@"\bEr i glade\b"),
MyRegEx(@"\bEr i gået\b"),
MyRegEx(@"\ber i gået\b"),
MyRegEx(@"\ber i her\b"),
MyRegEx(@"\bEr i her\b"),
MyRegEx(@"\ber i imod\b"),
MyRegEx(@"\bEr i imod\b"),
MyRegEx(@"\ber i klar\b"),
MyRegEx(@"\bEr i klar\b"),
MyRegEx(@"\bEr i mætte\b"),
MyRegEx(@"\ber i mætte\b"),
MyRegEx(@"\bEr i med\b"),
MyRegEx(@"\ber i med\b"),
MyRegEx(@"\ber i mod\b"),
MyRegEx(@"\bEr i mod\b"),
MyRegEx(@"\ber i okay\b"),
MyRegEx(@"\bEr i okay\b"),
MyRegEx(@"\ber i på\b"),
MyRegEx(@"\bEr i på\b"),
MyRegEx(@"\bEr i parate\b"),
MyRegEx(@"\ber i parate\b"),
MyRegEx(@"\ber i sikker\b"),
MyRegEx(@"\bEr i sikker\b"),
MyRegEx(@"\bEr i sikre\b"),
MyRegEx(@"\ber i sikre\b"),
MyRegEx(@"\ber i skøre\b"),
MyRegEx(@"\bEr i skøre\b"),
MyRegEx(@"\ber i stadig\b"),
MyRegEx(@"\bEr i stadig\b"),
MyRegEx(@"\bEr i sultne\b"),
MyRegEx(@"\ber i sultne\b"),
MyRegEx(@"\bEr i tilfredse\b"),
MyRegEx(@"\ber i tilfredse\b"),
MyRegEx(@"\bEr i to\b"),
MyRegEx(@"\ber i ved at\b"),
MyRegEx(@"\ber i virkelig\b"),
MyRegEx(@"\bEr i virkelig\b"),
MyRegEx(@"\bEr i vågne\b"),
MyRegEx(@"\ber i vågne\b"),
MyRegEx(@"\bfanden vil i?"),
MyRegEx(@"\bfor ser i\b"),
MyRegEx(@"\bFor ser i\b"),
MyRegEx(@"\bFordi i ventede\b"),
MyRegEx(@"\bfordi i ventede\b"),
MyRegEx(@"\bFordi i deltog\b"),
MyRegEx(@"\bfordi i deltog\b"),
MyRegEx(@"\bforhandler i stadig\b"),
MyRegEx(@"\bForhandler i stadig\b"),
MyRegEx(@"\bforstår i\b"),
MyRegEx(@"\bForstår i\b"),
MyRegEx(@"\bFør i får\b"),
MyRegEx(@"\bfør i får\b"),
MyRegEx(@"\bFør i kommer\b"),
MyRegEx(@"\bfør i kommer\b"),
MyRegEx(@"\bFør i tager\b"),
MyRegEx(@"\bfør i tager\b"),
MyRegEx(@"\bfår i alle\b"),
MyRegEx(@"\bfår i fratrukket\b"),
MyRegEx(@"\bfår i ikke\b"),
MyRegEx(@"\bfår i klø\b"),
MyRegEx(@"\bfår i point\b"),
MyRegEx(@"\bgider i at\b"),
MyRegEx(@"\bGider i at\b"),
MyRegEx(@"\bGider i ikke\b"),
MyRegEx(@"\bgider i ikke\b"),
MyRegEx(@"\bgider i lige\b"),
MyRegEx(@"\bGider i lige\b"),
MyRegEx(@"\b[Gg]ik i lige\b"),
MyRegEx(@"\b[Gg]ik i hjem\b"),
MyRegEx(@"\b[Gg]ik i over\b"),
MyRegEx(@"\b[Gg]ik i forbi\b"),
MyRegEx(@"\b[Gg]ik i ind\b"),
MyRegEx(@"\b[Gg]ik i uden\b"),
MyRegEx(@"\bGjorde i det\b"),
MyRegEx(@"\bGjorde i det\b"),
MyRegEx(@"\bgjorde i ikke\b"),
MyRegEx(@"\bGider i godt\b"),
MyRegEx(@"\bgider i godt\b"),
MyRegEx(@"\bGider i ikke\b"),
MyRegEx(@"\bgider i ikke\b"),
MyRegEx(@"\b[Gg]iver i mig\b"),
MyRegEx(@"\bglor i på\b"),
MyRegEx(@"\bGlor i på\b"),
MyRegEx(@"\b[Gg]lor i allesammen på\b"),
MyRegEx(@"\b[Gg]lor i alle på\b"),
MyRegEx(@"\bGår i ind\b"),
MyRegEx(@"\bgår i ind\b"),
MyRegEx(@"\b[Gg]å i bare\b"),
MyRegEx(@"\bHørte i det\b"),
MyRegEx(@"\bhørte i det\b"),
MyRegEx(@"\bHar i \b"),
MyRegEx(@"\bhar i ødelagt\b"),
MyRegEx(@"\bhar i fået\b"),
MyRegEx(@"\bHar i fået\b"),
MyRegEx(@"\bHar i det\b"),
MyRegEx(@"\bhar i det\b"),
MyRegEx(@"\bhar i gjort\b"),
MyRegEx(@"\bhar i ikke\b"),
MyRegEx(@"\bHar i nogen\b"),
MyRegEx(@"\bhar i nogen\b"),
MyRegEx(@"\bHar i nok\b"),
MyRegEx(@"\bhar i nok\b"),
MyRegEx(@"\bhar i ordnet\b"),
MyRegEx(@"\bHar i ordnet\b"),
MyRegEx(@"\bhar i spist\b"),
MyRegEx(@"\bHar i spist\b"),
MyRegEx(@"\bhar i tænkt\b"),
MyRegEx(@"\bhar i tabt\b"),
MyRegEx(@"\bhelvede vil i?"),
MyRegEx(@"\bHer har i\b"),
MyRegEx(@"\bher har i\b"),
MyRegEx(@"\b[Hh]older i fast\b"),
MyRegEx(@"\b[Hh]older i godt fast\b"),
MyRegEx(@"\bHvad fanden har i\b"),
MyRegEx(@"\bhvad fanden har i\b"),
MyRegEx(@"\bHvad fanden tror i\b"),
MyRegEx(@"\bhvad fanden tror i\b"),
MyRegEx(@"\bhvad fanden vil i\b"),
MyRegEx(@"\bHvad fanden vil i\b"),
MyRegEx(@"\bHvad gør i\b"),
MyRegEx(@"\bhvad gør i\b"),
MyRegEx(@"\bhvad har i\b"),
MyRegEx(@"\bHvad har i\b"),
MyRegEx(@"\bHvad i ikke\b"),
MyRegEx(@"\bhvad i ikke\b"),
MyRegEx(@"\b[Hh]vad laver i\b"),
MyRegEx(@"\b[Hh]vad lavede i\b"),
MyRegEx(@"\b[Hh]vad mener i\b"),
MyRegEx(@"\b[Hh]vad siger i\b"),
MyRegEx(@"\b[Hh]vad skal i\b"),
MyRegEx(@"\b[Hh]vad snakker i\b"),
MyRegEx(@"\b[Hh]vad sløver i\b"),
MyRegEx(@"\b[Hh]vad synes i\b"),
MyRegEx(@"\b[Hh]vad vil i\b"),
MyRegEx(@"\b[Hh]vem er i\b"),
MyRegEx(@"\b[Hh]vem fanden tror i\b"),
MyRegEx(@"\b[Hh]vem tror i\b"),
MyRegEx(@"\b[Hh]vilken slags mennesker er i?"),
MyRegEx(@"\b[Hh]vilken slags folk er i?"),
MyRegEx(@"\b[Hh]vis i altså\b"),
MyRegEx(@"\b[Hh]vis i bare\b"),
MyRegEx(@"\b[Hh]vis i forstår\b"),
MyRegEx(@"\b[Hh]vis i får\b"),
MyRegEx(@"\b[Hh]vis i går\b"),
MyRegEx(@"\b[Hh]vis i ikke\b"),
MyRegEx(@"\b[Hh]vis i lovede\b"),
MyRegEx(@"\b[Hh]vis i lover\b"),
MyRegEx(@"\b[Hh]vis i overholder\b"),
MyRegEx(@"\b[Hh]vis i overtræder\b"),
MyRegEx(@"\b[Hh]vis i slipper\b"),
MyRegEx(@"\b[Hh]vis i taber\b"),
MyRegEx(@"\b[Hh]vis i vandt\b"),
MyRegEx(@"\b[Hh]vis i vinder\b"),
MyRegEx(@"\b[Hh]vor er i\b"),
MyRegEx(@"\b[Hh]vor får i\b"),
MyRegEx(@"\b[Hh]vor gamle er i\b"),
MyRegEx(@"\b[Hh]vor i begyndte\b"),
MyRegEx(@"\b[Hh]vor i startede\b"),
MyRegEx(@"\b[Hh]vor skal i\b"),
MyRegEx(@"\b[Hh]vor var i\b"),
MyRegEx(@"\b[Hh]vordan har i\b"),
MyRegEx(@"\b[Hh]vordan hørte i\b"),
MyRegEx(@"\b[Hh]vordan i når\b"),
MyRegEx(@"\b[Hh]vordan i nåede\b"),
MyRegEx(@"\b[Hh]vordan kunne i\b"),
MyRegEx(@"\b[Hh]vorfor afleverer i det\b"),
MyRegEx(@"\b[Hh]vorfor gør i "),
MyRegEx(@"\b[Hh]vorfor gjorde i "),
MyRegEx(@"\b[Hh]vorfor græder i "),
MyRegEx(@"\b[Hh]vorfor har i "),
MyRegEx(@"\b[Hh]vorfor kom i "),
MyRegEx(@"\b[Hh]vorfor kommer i "),
MyRegEx(@"\b[Hh]vorfor løb i "),
MyRegEx(@"\b[Hh]vorfor lover i "),
MyRegEx(@"\b[Hh]vorfor lovede i "),
MyRegEx(@"\b[Hh]vorfor skal i\b"),
MyRegEx(@"\b[Hh]vorfor skulle i\b"),
MyRegEx(@"\b[Hh]vorfor sagde i\b"),
MyRegEx(@"\b[Hh]vorfor synes i\b"),
MyRegEx(@"\b[Hh]vornår gør i "),
MyRegEx(@"\bHvornår kom i\b"),
MyRegEx(@"\b[Hh]vornår ville i "),
MyRegEx(@"\b[Hh]vornår giver i "),
MyRegEx(@"\b[Hh]vornår gav i "),
MyRegEx(@"\b[Hh]vornår rejser i\b"),
MyRegEx(@"\b[Hh]vornår rejste i\b"),
MyRegEx(@"\b[Hh]vornår skal i "),
MyRegEx(@"\b[Hh]vornår skulle i "),
MyRegEx(@"\b[Hh]ører i på\b"),
MyRegEx(@"\b[Hh]ørte i på\b"),
MyRegEx(@"\b[Hh]ører i,\b"),
MyRegEx(@"\b[Hh]ører i ikke\b"),
MyRegEx(@"\bi altid\b"),
MyRegEx(@"\bi ankomme\b"),
MyRegEx(@"\bi ankommer\b"),
MyRegEx(@"\bi bare kunne\b"),
MyRegEx(@"\bi bare havde\b"),
MyRegEx(@"\bi bare gjorde\b"),
MyRegEx(@"\bi begge er\b"),
MyRegEx(@"\bi begge gør\b"),
MyRegEx(@"\bi begge har\b"),
MyRegEx(@"\bi begge var\b"),
MyRegEx(@"\bi begge vil\b"),
MyRegEx(@"\bi behøver ikke gemme\b"),
MyRegEx(@"\bi behøver ikke prøve\b"),
MyRegEx(@"\bi behøver ikke skjule\b"),
MyRegEx(@"\bi behandlede\b"),
MyRegEx(@"\bi behandler\b"),
MyRegEx(@"\bi beskidte dyr\b"),
MyRegEx(@"\bi blev\b"),
MyRegEx(@"\bi blive\b"),
MyRegEx(@"\bi bliver\b"),
MyRegEx(@"\bi burde\b"),
MyRegEx(@"\bi er\b"),
MyRegEx(@"\bi fyrer af\b"),
MyRegEx(@"\bi gør\b"),
MyRegEx(@"\bi gav\b"),
MyRegEx(@"\bi gerne "),
MyRegEx(@"\bi giver\b"),
MyRegEx(@"\bi gjorde\b"),
MyRegEx(@"\bi hører\b"),
MyRegEx(@"\bi hørte\b"),
MyRegEx(@"\bi har\b"),
MyRegEx(@"\bi havde\b"),
MyRegEx(@"\bi igen bliver\b"),
MyRegEx(@"\bi igen burde\b"),
MyRegEx(@"\bi igen finder\b"),
MyRegEx(@"\bi igen gør\b"),
MyRegEx(@"\bi igen kommer\b"),
MyRegEx(@"\bi igen prøver\b"),
MyRegEx(@"\bi igen siger\b"),
MyRegEx(@"\bi igen skal\b"),
MyRegEx(@"\bi igen vil\b"),
MyRegEx(@"\bi ikke gerne\b"),
MyRegEx(@"\bi ikke kan\b"),
MyRegEx(@"\bi ikke kommer\b"),
MyRegEx(@"\bi ikke vil\b"),
MyRegEx(@"\bi kan\b"),
MyRegEx(@"\bi kender\b"),
MyRegEx(@"\bi kom\b"),
MyRegEx(@"\bi komme\b"),
MyRegEx(@"\bi kommer\b"),
MyRegEx(@"\bi kunne\b"),
MyRegEx(@"\bi morer jer\b"),
MyRegEx(@"\bi må gerne\b"),
MyRegEx(@"\bi må give\b"),
MyRegEx(@"\bi må da\b"),
MyRegEx(@"\bi nåede\b"),
MyRegEx(@"\bi når\b"),
MyRegEx(@"\bi prøve\b"),
MyRegEx(@"\bi prøvede\b"),
MyRegEx(@"\bi prøver\b"),
MyRegEx(@"\bi sagde\b"),
MyRegEx(@"\bi scorede\b"),
MyRegEx(@"\bi ser\b"),
MyRegEx(@"\bi set\b"),
MyRegEx(@"\bi siger\b"),
MyRegEx(@"\bi sikkert alle\b"),
MyRegEx(@"\bi sikkert ikke gør\b"),
MyRegEx(@"\bi sikkert ikke kan\b"),
MyRegEx(@"\bi sikkert ikke vil\b"),
MyRegEx(@"\bi skal\b"),
MyRegEx(@"\bi skulle\b"),
MyRegEx(@"\bi små stakler\b"),
MyRegEx(@"\bi stopper\b"),
MyRegEx(@"\bi synes\b"),
MyRegEx(@"\bi troede\b"),
MyRegEx(@"\bi tror\b"),
MyRegEx(@"\bi var\b"),
MyRegEx(@"\bi vel ikke\b"),
MyRegEx(@"\bi vil\b"),
MyRegEx(@"\bi ville\b"),
MyRegEx(@"\b[Kk]an i lugte\b"),
MyRegEx(@"\b[Kk]an i overleve\b"),
MyRegEx(@"\b[Kk]an i spise\b"),
MyRegEx(@"\b[Kk]an i se\b"),
MyRegEx(@"\b[Kk]an i smage\b"),
MyRegEx(@"\b[Kk]an i forstå\b"),
MyRegEx(@"\b[Kk]ørte i hele\b"),
MyRegEx(@"\b[Kk]ørte i ikke\b"),
MyRegEx(@"\b[Kk]an i godt\b"),
MyRegEx(@"\b[Kk]an i gøre\b"),
MyRegEx(@"\b[Kk]an i huske\b"),
MyRegEx(@"\b[Kk]an i ikke\b"),
MyRegEx(@"\b[Kk]an i lide\b"),
MyRegEx(@"\b[Kk]an i leve\b"),
MyRegEx(@"\b[Kk]an i love\b"),
MyRegEx(@"\b[Kk]an i måske\b"),
MyRegEx(@"\b[Kk]an i nok\b"),
MyRegEx(@"\b[Kk]an i se\b"),
MyRegEx(@"\b[Kk]an i sige\b"),
MyRegEx(@"\b[Kk]an i tilgive\b"),
MyRegEx(@"\b[Kk]an i tygge\b"),
MyRegEx(@"\b[Kk]an i to ikke\b"),
MyRegEx(@"\b[Kk]an i tro\b"),
MyRegEx(@"\bKender i "),
MyRegEx(@"\b[Kk]ender i hinanden\b"),
MyRegEx(@"\b[Kk]ender i to hinanden\b"),
MyRegEx(@"\bKendte i \b"),
MyRegEx(@"\b[Kk]endte i hinanden\b"),
MyRegEx(@"\b[Kk]iggede i på\b"),
MyRegEx(@"\b[Kk]igger i på\b"),
MyRegEx(@"\b[Kk]ommer i her\b"),
MyRegEx(@"\b[Kk]ommer i ofte\b"),
MyRegEx(@"\b[Kk]ommer i sammen\b"),
MyRegEx(@"\b[Kk]ommer i tit\b"),
MyRegEx(@"\b[Kk]unne i fortælle\b"),
MyRegEx(@"\b[Kk]unne i give\b"),
MyRegEx(@"\b[Kk]unne i gøre\b"),
MyRegEx(@"\b[Kk]unne i ikke\b"),
MyRegEx(@"\b[Kk]unne i lide\b"),
MyRegEx(@"\b[Kk]unne i mødes\b"),
MyRegEx(@"\b[Kk]unne i se\b"),
MyRegEx(@"\b[Ll]eder i efter\b"),
MyRegEx(@"\b[Ll]aver i ikke\b"),
MyRegEx(@"\blaver i her\b"),
MyRegEx(@"\b[Ll]igner i far\b"),
MyRegEx(@"\b[Ll]igner i hinanden\b"),
MyRegEx(@"\b[Ll]igner i mor\b"),
MyRegEx(@"\bLover i\b"),
MyRegEx(@"\b[Ll]ykkes i med\b"),
MyRegEx(@"\b[Ll]ykkedes i med\b"),
MyRegEx(@"\b[Ll]øb i hellere\b"),
MyRegEx(@"\b[Mm]ødte i "),
MyRegEx(@"\b[Mm]angler i en\b"),
MyRegEx(@"\b[Mm]en i gutter\b"),
MyRegEx(@"\b[Mm]en i drenge\b"),
MyRegEx(@"\b[Mm]en i fyre\b"),
MyRegEx(@"\b[Mm]en i står\b"),
MyRegEx(@"\b[Mm]ener i at\b"),
MyRegEx(@"\b[Mm]ener i det\b"),
MyRegEx(@"\b[Mm]ener i virkelig\b"),
MyRegEx(@"\b[Mm]ens i sov\b"),
MyRegEx(@"\b[Mm]ens i stadig\b"),
MyRegEx(@"\b[Mm]ens i lå\b"),
MyRegEx(@"\b[Mm]ister i point\b"),
MyRegEx(@"\b[Mm]orer i jer\b"),
MyRegEx(@"\b[Mm]å i alle"),
MyRegEx(@"\b[Mm]å i gerne"),
MyRegEx(@"\b[Mm]å i godt\b"),
MyRegEx(@"\b[Mm]å i vide\b"),
MyRegEx(@"\b[Mm]å i ikke"),
MyRegEx(@"\b[Nn]u løber i\b"),
MyRegEx(@"\b[Nn]u siger i\b"),
MyRegEx(@"\b[Nn]u skal i\b"),
MyRegEx(@"\b[Nn]år i\b"),
MyRegEx(@"\b[Oo]m i ikke\b"),
MyRegEx(@"\b[Oo]pgiver i\b"),
MyRegEx(@"\b[Oo]vergiver i jer\b"),
MyRegEx(@"\bpersoner i lukker\b"),
MyRegEx(@"\b[Pp]as på i ikke\b"),
MyRegEx(@"\b[Pp]as på i ikke\b"),
MyRegEx(@"\b[Pp]å i ikke\b"),
MyRegEx(@"\b[Pp]å at i ikke\b"),
MyRegEx(@"\b[Ss]agde i ikke\b"),
MyRegEx(@"\b[Ss]amlede i ham\b"),
MyRegEx(@"\bSer i\b"),
MyRegEx(@"\bSiger i\b"),
MyRegEx(@"\b[Ss]ikker på i ikke\b"),
MyRegEx(@"\b[Ss]ikre på i ikke\b"),
MyRegEx(@"\b[Ss]kal i alle\b"),
MyRegEx(@"\b[Ss]kal i allesammen\b"),
MyRegEx(@"\b[Ss]kal i begge dø\b"),
MyRegEx(@"\b[Ss]kal i bare\b"),
MyRegEx(@"\b[Ss]kal i dele\b"),
MyRegEx(@"\b[Ss]kal i dø\b"),
MyRegEx(@"\b[Ss]kal i fordele\b"),
MyRegEx(@"\b[Ss]kal i fordeles\b"),
MyRegEx(@"\b[Ss]kal i fortælle\b"),
MyRegEx(@"\b[Ss]kal i gøre\b"),
MyRegEx(@"\b[Ss]kal i have\b"),
MyRegEx(@"\b[Ss]kal i ikke\b"),
MyRegEx(@"\b[Ss]kal i klare\b"),
MyRegEx(@"\b[Ss]kal i klatre\b"),
MyRegEx(@"\b[Ss]kal i larme\b"),
MyRegEx(@"\b[Ss]kal i lave\b"),
MyRegEx(@"\b[Ss]kal i løfte\b"),
MyRegEx(@"\b[Ss]kal i med\b"),
MyRegEx(@"\b[Ss]kal i på\b"),
MyRegEx(@"\b[Ss]kal i til\b"),
MyRegEx(@"\b[Ss]kal i ud\b"),
MyRegEx(@"\b[Ss]lap i ud\b"),
MyRegEx(@"\b[Ss]lap i væk\b"),
MyRegEx(@"\b[Ss]nart er i\b"),
MyRegEx(@"\b[Ss]om i måske\b"),
MyRegEx(@"\b[Ss]om i nok\b"),
MyRegEx(@"\b[Ss]om i ved\b"),
MyRegEx(@"\b[Ss]pis i bare\b"),
MyRegEx(@"\b[Ss]pis i dem\b"),
MyRegEx(@"\b[Ss]ynes i at\b"),
MyRegEx(@"\b[Ss]ynes i det\b"),
MyRegEx(@"\b[Ss]ynes i,"),
MyRegEx(@"\b[Ss]ætter i en\b"),
MyRegEx(@"\bSå i at\b"),
MyRegEx(@"\bSå i det\b"),
MyRegEx(@"\bSå i noget\b"),
MyRegEx(@"\b[Ss]å tager i\b"),
MyRegEx(@"\bTænder i på\b"),
MyRegEx(@"\btænder i på\b"),
MyRegEx(@"\btog i bilen\b"),
MyRegEx(@"\bTog i bilen\b"),
MyRegEx(@"\btog i liften\b"),
MyRegEx(@"\bTog i liften\b"),
MyRegEx(@"\btog i toget\b"),
MyRegEx(@"\bTog i toget\b"),
MyRegEx(@"\btræder i frem\b"),
MyRegEx(@"\bTræder i frem\b"),
MyRegEx(@"\bTror i at\b"),
MyRegEx(@"\btror i at\b"),
MyRegEx(@"\btror i det\b"),
MyRegEx(@"\bTror i det\b"),
MyRegEx(@"\bTror i jeg\b"),
MyRegEx(@"\btror i jeg\b"),
MyRegEx(@"\bTror i på\b"),
MyRegEx(@"\b[Tr]ror i på\b"),
MyRegEx(@"\b[Tr]ror i, "),
MyRegEx(@"\b[Vv]ar i blevet\b"),
MyRegEx(@"\b[Vv]ed i alle\b"),
MyRegEx(@"\b[Vv]ed i allesammen\b"),
MyRegEx(@"\b[Vv]ed i er\b"),
MyRegEx(@"\b[Vv]ed i ikke\b"),
MyRegEx(@"\b[Vv]ed i hvad\b"),
MyRegEx(@"\b[Vv]ed i hvem\b"),
MyRegEx(@"\b[Vv]ed i hvor\b"),
MyRegEx(@"\b[Vv]ed i hvorfor\b"),
MyRegEx(@"\b[Vv]ed i hvordan\b"),
MyRegEx(@"\b[Vv]ed i var\b"),
MyRegEx(@"\b[Vv]ed i ville\b"),
MyRegEx(@"\b[Vv]ed i har\b"),
MyRegEx(@"\b[Vv]ed i havde\b"),
MyRegEx(@"\b[Vv]ed i hvem\b"),
MyRegEx(@"\b[Vv]ed i hvad\b"),
MyRegEx(@"\b[Vv]ed i hvor\b"),
MyRegEx(@"\b[Vv]ed i mente\b"),
MyRegEx(@"\b[Vv]ed i tror\b"),
MyRegEx(@"\b[Vv]enter i på\b"),
MyRegEx(@"\b[Vv]il i besegle\b"),
MyRegEx(@"\b[Vv]il i dræbe\b"),
MyRegEx(@"\b[Vv]il i fjerne\b"),
MyRegEx(@"\b[Vv]il i fortryde\b"),
MyRegEx(@"\b[Vv]il i gerne\b"),
MyRegEx(@"\b[Vv]il i godt\b"),
MyRegEx(@"\b[Vv]il i have\b"),
MyRegEx(@"\b[Vv]il i høre\b"),
MyRegEx(@"\b[Vv]il i ikke\b"),
MyRegEx(@"\b[Vv]il i købe\b"),
MyRegEx(@"\b[Vv]il i kaste\b"),
MyRegEx(@"\b[Vv]il i møde\b"),
MyRegEx(@"\b[Vv]il i måske\b"),
MyRegEx(@"\bvil i savne\b"),
MyRegEx(@"\bVil i savne\b"),
MyRegEx(@"\bvil i se\b"),
MyRegEx(@"\bVil i se\b"),
MyRegEx(@"\bvil i sikkert\b"),
MyRegEx(@"\bvil i smage\b"),
MyRegEx(@"\bVil i smage\b"),
MyRegEx(@"\b[Vv]il i virkelig\b"),
MyRegEx(@"\b[Vv]il i virkeligt\b"),
MyRegEx(@"\bVil i være\b"),
MyRegEx(@"\bvil i være\b"),
MyRegEx(@"\bVille i blive\b"),
MyRegEx(@"\bville i blive\b"),
MyRegEx(@"\bville i dræbe\b"),
MyRegEx(@"\bville i få\b"),
MyRegEx(@"\bville i få\b"),
MyRegEx(@"\bville i gøre\b"),
MyRegEx(@"\bville i høre\b"),
MyRegEx(@"\bville i ikke\b"),
MyRegEx(@"\bville i kaste\b"),
MyRegEx(@"\bville i komme\b"),
MyRegEx(@"\bville i mene\b"),
MyRegEx(@"\bville i nå\b"),
MyRegEx(@"\bville i savne\b"),
MyRegEx(@"\bVille i se\b"),
MyRegEx(@"\bville i se\b"),
MyRegEx(@"\bville i sikkert\b"),
MyRegEx(@"\bville i synes\b"),
MyRegEx(@"\bville i tage\b"),
MyRegEx(@"\bville i tro\b"),
MyRegEx(@"\bville i være\b"),
MyRegEx(@"\bville i være\b"),
MyRegEx(@"\b[Vv]iste i, at\b"),
MyRegEx(@"\b[Vv]iste i at\b"),
MyRegEx(@"\bvover i\b"),
};
var regExIDag = new Regex(@"\bidag\b", RegexOptions.Compiled);
var regExIGaar = new Regex(@"\bigår\b", RegexOptions.Compiled);
var regExIMorgen = new Regex(@"\bimorgen\b", RegexOptions.Compiled);
var regExIAlt = new Regex(@"\bialt\b", RegexOptions.Compiled);
var regExIGang = new Regex(@"\bigang\b", RegexOptions.Compiled);
var regExIStand = new Regex(@"\bistand\b", RegexOptions.Compiled);
var regExIOevrigt = new Regex(@"\biøvrigt\b", RegexOptions.Compiled);
for (int i = 0; i < subtitle.Paragraphs.Count; i++)
{
string text = subtitle.Paragraphs[i].Text;
Paragraph p = subtitle.Paragraphs[i];
string text = p.Text;
string oldText = text;
if (littleIRegex.IsMatch(text))
// Make sure text contains lower: 'i'.
if (SubtitleEditRegex.LittleIRegex.IsMatch(text))
{
foreach (var regex in iList)
foreach (var regex in SubtitleEditRegex.DanishLetterI.DanishCompiledRegexList)
{
var match = regex.Match(text);
Match match = regex.Match(text);
while (match.Success)
{
var iMatch = littleIRegex.Match(match.Value);
if (iMatch.Success)
{
string temp = match.Value.Remove(iMatch.Index, 1).Insert(iMatch.Index, "I");
// Get lower 'i' index from matched value.
int iIdx = SubtitleEditRegex.LittleIRegex.Match(match.Value).Index;
// Remove 'i' from given index and insert new uppwercase 'I'.
string temp = match.Value.Remove(iIdx, 1).Insert(iIdx, "I");
int index = match.Index;
if (index + match.Value.Length >= text.Length)
text = text.Substring(0, index) + temp;
else
text = text.Substring(0, index) + temp + text.Substring(index + match.Value.Length);
}
int index = match.Index;
if (index + match.Value.Length >= text.Length)
text = text.Substring(0, index) + temp;
else
text = text.Substring(0, index) + temp + text.Substring(index + match.Value.Length);
match = match.NextMatch();
}
}
}
if (regExIDag.IsMatch(text))
text = regExIDag.Replace(text, "i dag");
if (SubtitleEditRegex.DanishLetterI.RegExIDag.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIDag.Replace(text, "i dag");
if (regExIGaar.IsMatch(text))
text = regExIGaar.Replace(text, "i går");
if (SubtitleEditRegex.DanishLetterI.RegExIGaar.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIGaar.Replace(text, "i går");
if (regExIMorgen.IsMatch(text))
text = regExIMorgen.Replace(text, "i morgen");
if (SubtitleEditRegex.DanishLetterI.RegExIMorgen.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIMorgen.Replace(text, "i morgen");
if (regExIAlt.IsMatch(text))
text = regExIAlt.Replace(text, "i alt");
if (SubtitleEditRegex.DanishLetterI.RegExIAlt.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIAlt.Replace(text, "i alt");
if (regExIGang.IsMatch(text))
text = regExIGang.Replace(text, "i gang");
if (SubtitleEditRegex.DanishLetterI.RegExIGang.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIGang.Replace(text, "i gang");
if (regExIStand.IsMatch(text))
text = regExIStand.Replace(text, "i stand");
if (SubtitleEditRegex.DanishLetterI.RegExIStand.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIStand.Replace(text, "i stand");
if (regExIOevrigt.IsMatch(text))
text = regExIOevrigt.Replace(text, "i øvrigt");
if (SubtitleEditRegex.DanishLetterI.RegExIOevrigt.IsMatch(text))
text = SubtitleEditRegex.DanishLetterI.RegExIOevrigt.Replace(text, "i øvrigt");
if (text != oldText)
if (text != oldText && callbacks.AllowFix(p, fixAction))
{
subtitle.Paragraphs[i].Text = text;
p.Text = text;
fixCount++;
callbacks.AddFixToListView(subtitle.Paragraphs[i], fixAction, oldText, text);
}

View File

@ -187,6 +187,7 @@
<Compile Include="SsaStyle.cs" />
<Compile Include="StringExtensions.cs" />
<Compile Include="StripableText.cs" />
<Compile Include="SubtitleEditRegex.cs" />
<Compile Include="Subtitle.cs" />
<Compile Include="SubtitleFormats\AbcIViewer.cs" />
<Compile Include="SubtitleFormats\AdobeAfterEffectsFTME.cs" />

175
libse/SubtitleEditRegex.cs Normal file
View File

@ -0,0 +1,175 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Nikse.SubtitleEdit.Core
{
public static class SubtitleEditRegex
{
// Others classes may want to use this regex.
public static readonly Regex LittleIRegex = new Regex(@"\bi\b", RegexOptions.Compiled);
/// <summary>
/// Will be constructed only once.
/// </summary>
public static class DanishLetterI
{
public static readonly Regex RegExIDag = new Regex(@"\bidag\b", RegexOptions.Compiled);
public static readonly Regex RegExIGaar = new Regex(@"\bigår\b", RegexOptions.Compiled);
public static readonly Regex RegExIMorgen = new Regex(@"\bimorgen\b", RegexOptions.Compiled);
public static readonly Regex RegExIAlt = new Regex(@"\bialt\b", RegexOptions.Compiled);
public static readonly Regex RegExIGang = new Regex(@"\bigang\b", RegexOptions.Compiled);
public static readonly Regex RegExIStand = new Regex(@"\bistand\b", RegexOptions.Compiled);
public static readonly Regex RegExIOevrigt = new Regex(@"\biøvrigt\b", RegexOptions.Compiled);
// TODO: Change to IReadOnlyCollection when changed to (.NET 4.5).
private static readonly IList<Regex> _regexList;
public static IEnumerable<Regex> DanishCompiledRegexList
{
get
{
return _regexList;
}
}
static DanishLetterI()
{
// Not a complete list, more phrases will come.
_regexList = new[]
{
RegexFactory(@"\b, er i alle\b"),
RegexFactory(@", i (?:ved nok|ved, |ved.|ikke blev)\b"),
RegexFactory(@"\b i føler at\b"),
RegexFactory(@"\badvarede i (?:os|dem)\b"),
RegexFactory(@"\bat i (?:aldrig|alle bliver|alle er|alle forventer|alle gør|alle har|alle ved|alle vil|bare|bager|bruger|dræber|dræbte|fandt|fik|finder|forstår|får|ikke|kom|kommer|næsten er|næsten fik|næsten har|næsten skulle|næsten var|også får|også gør|også mener|også siger|også tror|rev|river|samarbejder|snakkede|scorer|siger|skal|skulle|to ikke|to siger|to har|to er|to bager|to skal|to gør|to får|udnyttede|udnytter|vil|ville)\b"),
RegexFactory(@"\b[Aa]t i (?:hver især|ikke)\b"),
RegexFactory(@"\b[Bb]ehandler i mig\b"),
RegexFactory(@"\bbliver i (?:rige|ikke|indkvarteret|indlogeret)\b"),
RegexFactory(@"\bburde i (?:gøre|ikke|købe|løbe|se|sig|tage)\b"),
RegexFactory(@"\bfanden vil i\?"),
RegexFactory(@"\b[Ff]or ser i\b"),
RegexFactory(@"\b[Db]a i (?:ankom|forlod|fik|gik|kom)\b"),
RegexFactory(@"\b[Dd]a \b"),
RegexFactory(@"\b[Db]a i så "),
RegexFactory(@"\b[Dd]det (?:får i|har i)\b"),
RegexFactory(@"\b[Dd]det må i "),
RegexFactory(@"\b[Dd]et Det kan i sgu"),
RegexFactory(@"\bend i (?:aner|tror|ved)\b"),
RegexFactory(@"\bellers får i "),
RegexFactory(@"\b[Ee]r i (?:alle|allerede|allesammen|der|fra|gennem|glade|gået|her|imod|klar|mætte|med|mod|okay|på|parate|sikker|sikre|skøre|stadig|sultne|tilfredse|to|ved at|virkelig|vågne)\b"),
RegexFactory(@"\b[Ff]ordi i (?:ventede|deltog)\b"),
RegexFactory(@"\b[Ff]orstår i\b"),
RegexFactory(@"\b[Ff]orhandler i stadig"),
RegexFactory(@"\b[Ff]ør i (?:får|kommer|tager|alle|fratrukket|ikke|klø|point)\b"), // Note: Some combination weren't using both (f and F) is it okay?
RegexFactory(@"\b[Gg]å i bare\b"),
RegexFactory(@"\b[Gg]år i ind\b"),
RegexFactory(@"\b[Gg]ider i (?:at|ikke|lige|godt)\b"),
RegexFactory(@"\b[Gg]ik i (?:lige|hjem|over|forbi|ind|uden)\b"),
RegexFactory(@"\b[Gg]jorde i (?:det|ikke)\b"),
RegexFactory(@"\b[Gg]lor i (?:på|allesammen på|alle på)\b"),
RegexFactory(@"\b[Gg]iver i mig\b"),
RegexFactory(@"\b[Hh]ørte i det\b"),
RegexFactory(@"\b[Hh]ører i(?:, | ikke)\b"),
RegexFactory(@"\b[Hh]ar i (?:ødelagt|fået|det|gjort|ikke|nogen|nok|ordnet|spist|tænkt|tabt)\b"),
RegexFactory(@"\bHar i\b"),
RegexFactory(@"\bhelvede vil i\?"),
RegexFactory(@"\b[Hh]older i (?:fast|godt fast)\b"),
RegexFactory(@"\b[Hh]er har i\b"),
RegexFactory(@"\b[Hh]vad fanden (?:har|tror|vil|gør|har|) i\b"),
RegexFactory(@"\b[Hh]vad i ikke\b"),
RegexFactory(@"\b[Hh]vad (?:laver|lavede|mener|siger|skal|snakker|sløver|synes|vil) i\b"),
RegexFactory(@"\b[Hh]vem (?:er|fanden tror|tror) i\b"),
RegexFactory(@"\b[Hh]vilken slags (?:mennesker|folk) er i\?"),
RegexFactory(@"\b[Hh]vis i (?:altså|bare|forstår|får|går|ikke|lovede|lover|overholder|overtræder|slipper|taber|vandt|vinder)\b"),
RegexFactory(@"\b[Hh]vor (?:er|får|gamle er) i\b"),
RegexFactory(@"\b[Hh]vor i (?:begyndte|startede)\b"),
RegexFactory(@"\b[Hh]vor (?:skal|var) i\b"),
RegexFactory(@"\b[Hh]vordan (?:har|hørte|kunne) i\b"),
RegexFactory(@"\b[Hh]vordan i (?:når|nåede)\b"),
RegexFactory(@"\b[Hh]vorfor afleverer i det\b"),
RegexFactory(@"\b[Hh]vorfor (?:gør|gjorde|græder|har|kom|kommer|løb|lover|lovede|skal|skulle|sagde|synes) i\b"),
RegexFactory(@"\b[Hh]vornår (?:kom|ville|giver|gav|rejser|skal|skulle) i\b"),
RegexFactory(@"\bi (?:altid|ankomme|ankommer|bare kunne|bare havde|bare gjorde|begge er|begge gør|begge har|begge var|begge vill|behøver ikke gemme|behøver ikke prøve|behøver ikke skjule|behandlede|behandlede|behandler|beskidte dyr|blev|blive|bliver|burde|er|fyrer|gør|gav|gerne|giver|gjorde|hører|hørte|har|havde|igen bliver|igen burder|igen finder|igen gør|igen kommer|igen prøver|igen siger|igen skal|igen vil|ikke gerne|ikke kan|ikke kommer|ikke vil|kan|kender|kom|komme|kommer|kunne|morer jer|må gerne|må give|må da|nåede|når|prøve|prøvede|prøver|sagde|scorede|ser|set|siger|sikkert alle|sikkert ikke gør|sikkert ikke kan|sikkert ikke vil|skal|skulle|små stakler|stopper|synes|troede|tror|var|vel|vil|ville)\b"),
RegexFactory(@"\b[Kk]an i (?:lugte|overleve|spise|se|smage|forstå|godt|gøre|huske|ikke|lide|leve|love|måske|nok|se|sige|tilgive|tygge|to ikke|tro)\b"), // Review
RegexFactory(@"\b[Kk]ørte i (?:hele|ikke)\b"),
RegexFactory(@"\b[Kk]ender i (?:hinanden|to hinanden)\b"),
RegexFactory(@"\bKender i "),
RegexFactory(@"\b[Kk]endte i (?: hinanden)?\b"),
RegexFactory(@"\b[Kk](?:iggede|igger) i på"),
RegexFactory(@"\b[Kk]ommer i (?:her|ofte|sammen|tit)\b"),
RegexFactory(@"\b[Kk]unne i (?:fortælle|give|gøre|ikke|lide|mødes|se)\b"),
RegexFactory(@"\b[Ll]eder i efter\b"),
RegexFactory(@"\b[Ll]aver i (?:ikke|her)\b"),
RegexFactory(@"\b[Ll]igner i (?:far|hinanden|mor)\b"),
RegexFactory(@"\b[Ll]aver i ikke\b"),
RegexFactory(@"\blaver i her\b"),
RegexFactory(@"\bLover i\b"),
RegexFactory(@"\b[Ll]ykke(?:s|des) i med\b"),
RegexFactory(@"\b[Ll]øb i hellere\b"),
RegexFactory(@"\b[Mm]ødte i "),
RegexFactory(@"\b[Mm]angler i en\b"),
RegexFactory(@"\b[Mm]en i (?:gutter|drenge|fyre|står)\b"),
RegexFactory(@"\b[Mm]ener i (?:at|det|virkelig)\b"),
RegexFactory(@"\b[Mm]ens i (?:sov|stadig|lå)\b"),
RegexFactory(@"\b[Mm]ister i point\b"),
RegexFactory(@"\b[Mm]å i (?:alle|gerne|godt|vide|ikke)\b"),
RegexFactory(@"\b[Nn]u (?:løber|siger|skal) i\b"),
RegexFactory(@"\b[Nn]år i\b"),
RegexFactory(@"\b[Oo]m i ikke\b"),
RegexFactory(@"\b[Oo]pgiver i\b"),
RegexFactory(@"\b[Oo]vergiver i jer\b"),
RegexFactory(@"\bpersoner i lukker\b"),
RegexFactory(@"\b[Pp]å (?:i ikke|at i ikke)\b"),
RegexFactory(@"\b[Ss]agde i ikke\b"),
RegexFactory(@"\b[Ss]amlede i ham\b"),
RegexFactory(@"\bS(?:er|iger) i\b"),
RegexFactory(@"\b[Ss]ik(?:ker|re) på i ikke\b"), // Sikker or Sikre...
RegexFactory(@"\b[Ss]kal i (?:alle|allesammen|begge dø|bare|dele|dø|fordele|fordeles|fortælle|gøre|have|ikke|klare|klatre|larme|lave|løfte|med|på|til|ud)\b"),
RegexFactory(@"\b[Ss]lap i (?:ud|væk)\b"),
RegexFactory(@"\b[Ss]nart er i\b"),
RegexFactory(@"\b[Ss]om i (?:måske|nok|ved)\b"),
RegexFactory(@"\b[Ss]pis i (?:bare|dem)\b"),
RegexFactory(@"\b[Ss]ynes i (?:at|det)\b"),
RegexFactory(@"\b[Ss]ynes i\b"), // Remove line above if this one should be kept.
RegexFactory(@"\b[Ss]ætter i en\b"),
RegexFactory(@"\bSå i (?:at|det|noget)\b"),
RegexFactory(@"\b[Ss]å tager i\b"),
RegexFactory(@"\b[Tt]ænder i på\b"),
RegexFactory(@"\b[Tt]og i (?:bilen|liften|toget)\b"),
RegexFactory(@"\b[Tt]ræder i frem\b"),
RegexFactory(@"\b[Tt]ror i (?:at|det|jeg|på)\b"),
RegexFactory(@"\b[Tr]ror i(?:, | på\b)"),
RegexFactory(@"\b[Vv]ar i blevet\b"),
RegexFactory(@"\b[Vv]ed i (?:alle|allesammen|er|ikke|hvad|hvem|hvor|hvorfor|hvordan|var|ville|har|havde|hvem|hvad|hvor|mente|tror)\b"),
RegexFactory(@"\b[Vv]enter i på\b"),
RegexFactory(@"\b[Vv]il i (?:besegle|dræbe|fjerne|fortryde|gerne|godt|have|høre|ikke|købe|kaste|møde|måske|savne|se|sikkert|smage|virkelig|være)\b"),
RegexFactory(@"\b[Vv]ille i (?:blive|dræbe|få|gøre|høre|ikke|kaste|komme|mene|nå|savne|se|sikkert|synes|tage|tro|være)\b"),
RegexFactory(@"\b[Vv]iste i(?:, at| at)\b"),
RegexFactory(@"\bvover i\b"),
};
}
/// <summary>
/// Returns an instance of compiled regex using given pattern.
/// </summary>
/// <param name="pattern">Pattern to be used to create instance of Regex.</param>
/// <returns>Compiled regex using given pattern.</returns>
private static Regex RegexFactory(string pattern)
{
pattern = ExpandWhiteSpace(pattern);
return new Regex(pattern, RegexOptions.Compiled);
}
/// <summary>
/// Converts any White-Space (U+0020) present in pattern to match: White-Space (U+0020),
/// Carriage-Return (U+000D) and Line-Feed (U+000A) minimum once or all its successors.
/// </summary>
private static string ExpandWhiteSpace(string pattern) => pattern.Replace(" ", "[ \r\n]+");
}
}
}