diff --git a/libse/Forms/FixCommonErrors/FixDanishLetterI.cs b/libse/Forms/FixCommonErrors/FixDanishLetterI.cs index 585c023a8..671d56b70 100644 --- a/libse/Forms/FixCommonErrors/FixDanishLetterI.cs +++ b/libse/Forms/FixCommonErrors/FixDanishLetterI.cs @@ -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 - { // 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); } diff --git a/libse/LibSE.csproj b/libse/LibSE.csproj index 4bd678156..75717a8db 100644 --- a/libse/LibSE.csproj +++ b/libse/LibSE.csproj @@ -187,6 +187,7 @@ + diff --git a/libse/SubtitleEditRegex.cs b/libse/SubtitleEditRegex.cs new file mode 100644 index 000000000..4b6258380 --- /dev/null +++ b/libse/SubtitleEditRegex.cs @@ -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); + + /// + /// Will be constructed only once. + /// + 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 _regexList; + + public static IEnumerable 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"), + }; + + } + + /// + /// Returns an instance of compiled regex using given pattern. + /// + /// Pattern to be used to create instance of Regex. + /// Compiled regex using given pattern. + private static Regex RegexFactory(string pattern) + { + pattern = ExpandWhiteSpace(pattern); + return new Regex(pattern, RegexOptions.Compiled); + } + + /// + /// 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. + /// + private static string ExpandWhiteSpace(string pattern) => pattern.Replace(" ", "[ \r\n]+"); + + } + } +}