public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
{
Skip = false;
Summary = "";
//-----
//Format:
//ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*) find (\s*[\|}<])", "{{$1$2$3 replace $4");
//This is designed to only fix {{cite foo}} or {{citation}} templates (or associated wrapper templates)
//Most rules will fix archive-?date, access-?date, or date parameters - some rules are broken out so that it will fix the same issue in multiple parameters
//Most rules will check for full date followed by ending pipe or right curly brace
//Note that this module will not fix every error - the goal is to fix some properly and not break anything
//-----
//remove duplicate equals sign or leading nbsp;
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:archive-?|access|publication-?)?date|year)\s*=)\s*(?:=| )", "{{$1$2$3");
//add pipe before parameter
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:archive-?|access|publication-?)?date|year)\s*=\s*(?:\d{4})?\s*)(access-?date|archiveurl|authorlink|deadurl|doi|edition|first|format|is[bs]n|language|pages?|pmid|publisher|ref|url|volume|work)(\s*=)", "{{$1$2$3|$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:archive-?|access|publication-?)?date|year)\s*=\s*\d{4}-\d{2}-\d{2}\s*)(access-?date|archiveurl|authorlink|archive-?date|deadurl|doi|edition|first|format|is[bs]n|language|pages?|pmid|publisher|ref|url|volume|work)(\s*=)", "{{$1$2$3|$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)\(?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)(\s*\d{1,2},)?\s*(\d{4}\.?\s*)(access-?date|archiveurl|authorlink|deadurl|doi|edition|first|format|is[bs]n|language|pages?|pmid|publisher|ref|url|volume|work)(\s*=)", "{{$1$2$3$4$5 $6|$7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)\(?(\s*\d{1,2}\s*)?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*(\d{4}\s*)(access-?date|archiveurl|authorlink|deadurl|doi|edition|first|format|is[bs]n|language|pages?|pmid|publisher|ref|url|volume|work)(\s*=)", "{{$1$2$3$4$5 $6|$7$8");
//fix NCES parameter
ArticleText = Regex.Replace(ArticleText, @"{{(\s*NCES)([^}]+)(\s*\|\s*)access-?date", "{{$1$2$3access_date");
//remove updated
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(?:last\s*)?(?:date|revised|posted|published|modified|updated?):?\s*(\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4$5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(?:last\s*)?(?:date|revised|posted|published|modified|updated?)(?:\son)?:?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4$5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)(\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*(\d{4})\s*[\(\[]?(?:last\s*)?(?:updated?|modified|edition|cover date)[\)\]]?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})\s*[\[\(]?(?:last\s*)?(?:updated?|modified|ed|cover date)[\]\)]?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)(?:last\s*)?(?:revised|modified|updated?)\s*(\d{4})(-\d{2}-\d{2})?(\s*[\|}<])", "{{$1$2$3$4$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*\d{4})(-\d{2}-\d{2})?\s*[\(\[]?(?:last\s*)?(?:edition|revised|modified|updated?)[\)\]]?(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{4}-\d{2}-\d)\d,\s*updated\s*\5(\d)(\s*[\|}<])", "{{$1$2$3date$4$5$6$7");
//removed retrieved
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)\(?(?:(?:date )?accessed|Retrieved|\(search\))\s*(?:on\s*)?(\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[\.\)]?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)\(?(?:(?:date )?accessed|Retrieved|\(search\))\s*(?:on\s*)?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})[\.\)]?(\s*[\|}<])", "{{$1$2$3$4$5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)\(?(?:(?:date )?accessed|Retrieved|\(search\))\s*(?:on\s*)?(\d{4}-\d{2}-\d{2})[\.\)]?(\s*[\|}<])", "{{$1$2$3$4$5");
//change date to access-date
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)date(\s*=\s*)(?:acces+ed|access\s*date|retrieved):?\s*(?:[io]n\s*)?(\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3access-date$4$5$6 $7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)date(\s*=\s*)(?:acces+ed|access\s*date|retrieved):?\s*(?:[io]n\s*)?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?,?\s*(\d{1,2}),?\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3access-date$4$5 $6, $7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)date(\s*=\s*)(?:acces+ed|access\s*date|retrieved):?\s*(?:[io]n\s*)?(\d{4}-\d{2}-\d{2})\.?(\s*[\|}<])", "{{$1$2$3access-date$4$5$6");
//remove Nowrap and Nobreak templates
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{No\s?(?:wrap|br|break)\|([\w\s,]+)\.?}}", "{{$1$2$3$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{No\s?(?:wrap|br|break)\|([\w\s,]+)\.?}}", "{{$1$2$3$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{No\s?(?:wrap|br|break)\|([\w\s,]+)\.?}}", "{{$1$2$3$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Australian Dictionary of Biography)([^}]+)(\s*\|\s*access-?date\s*=\s*){{No\s?(?:wrap|br|break)\|([\w\s,]+)\.?}}", "{{$1$2$3$4");
//replace Start date template
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?1}}(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?2}}(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?3}}(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?4}}(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?5}}(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?6}}(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?7}}(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?8}}(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?9}}(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|10}}(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|11}}(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|12}}(\s*[\|}<])", "{{$1$2$3December $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?1\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?1\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?1\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?2\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?2\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?2\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?3\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?3\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?3\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?4\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?4\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?4\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?5\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?5\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?5\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?6\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?6\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?6\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?7\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?7\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?7\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?8\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?8\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?8\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|0?9\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|0?9\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|0?9\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|10\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|10\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|10\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|11\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|11\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|11\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{Start ?date\|(\d{4})\|12\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|12\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|12\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?1\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?2\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?3\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?4\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?5\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?6\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?7\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?8\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?9\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*10\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*11\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*){{Start ?date\|(\d{4})\|\s*12\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?1\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?2\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?3\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?4\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?5\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?6\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?7\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?8\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?9\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*10\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*11\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*12\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?1\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?2\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?3\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?4\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?5\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?6\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?7\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?8\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*0?9\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*10\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*11\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{Start ?date\|(\d{4})\|\s*12\|\s*(\d{1,2})\|\s*df=\s*y(?:es)?}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?1\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?2\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?3\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?4\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?5\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?6\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?7\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?8\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|0?9\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|10\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|11\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*){{Start ?date\|df=y(?:es)?\|(\d{4})\|12\|(\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
//replace dateformat & formatdate templates
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-01-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-01-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-01-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-02-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-02-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-02-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-03-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-03-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-03-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-04-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-04-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-04-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-05-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-05-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-05-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-06-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-06-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-06-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-07-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-07-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-07-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-08-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-08-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-08-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-09-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-09-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-09-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-10-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-10-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-10-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-11-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-11-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-11-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-12-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-12-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(\d{4})-12-(\d{2})(?:\|mdy)?}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{#(?:dateformat|formatdate):(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{#(?:dateformat|formatdate):(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{#(?:dateformat|formatdate):(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
//replace dts template
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-](Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-](Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-](Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?1[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?1[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?1[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3January $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?2[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?2[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?2[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3February $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?3[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?3[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?3[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3March $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?4[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?4[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?4[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3April $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?5[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?5[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?5[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3May $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?6[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?6[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?6[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3June $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?7[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?7[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?7[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3July $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?8[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?8[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?8[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3August $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?9[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?9[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]0?9[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3September $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]10[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]10[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]10[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3October $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]11[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]11[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]11[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3November $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]12[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]12[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})[\|-]12[\|-](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3December $5, $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?1\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?1\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?1\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?2\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?2\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?2\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?3\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?3\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?3\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?4\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?4\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?4\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?5\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?5\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?5\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?6\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?6\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?6\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?7\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?7\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?7\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?8\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?8\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?8\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?9\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?9\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|0?9\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|10\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|10\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|10\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|11\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|11\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|11\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|12\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|12\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})\|12\|(\d{1,2})\|format=dmy}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?1[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?1[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?1[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 January $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?2[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?2[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?2[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 February $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?3[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?3[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?3[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 March $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?4[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?4[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?4[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 April $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?5[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?5[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?5[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 May $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?6[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?6[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?6[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 June $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?7[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?7[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?7[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 July $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?8[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?8[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?8[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 August $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?9[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?9[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]0?9[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 September $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]10[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]10[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]10[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 October $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]11[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]11[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]11[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 November $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]12[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]12[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|format=dmy\|(\d{4})[-\|]12[-\|](\d{1,2})}}(\s*[\|}<])", "{{$1$2$3$5 December $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*){{dts(?:\|link=off)?\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*){{dts(?:\|link=off)?\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*){{dts(?:\|link=off)?\|(\d{4})}}(\s*[\|}<])", "{{$1$2$3$4$5");
//remove Spaced ndash template
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*[\w\s,]+){{spaced ndash}}", "{{$1$2$3 – ");
//remove trailing period from month parameter
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.(\s*[\|}<])", "{{$1$2$3$4$5");
//convert month parameter from number to text
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)01(\s*[\|}<])", "{{$1$2$3January$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)02(\s*[\|}<])", "{{$1$2$3February$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?3(\s*[\|}<])", "{{$1$2$3March$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?4(\s*[\|}<])", "{{$1$2$3April$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?5(\s*[\|}<])", "{{$1$2$3May$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?6(\s*[\|}<])", "{{$1$2$3June$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?7(\s*[\|}<])", "{{$1$2$3July$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?8(\s*[\|}<])", "{{$1$2$3August$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)0?9(\s*[\|}<])", "{{$1$2$3September$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)10(\s*[\|}<])", "{{$1$2$3October$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)11(\s*[\|}<])", "{{$1$2$3November$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)12(\s*[\|}<])", "{{$1$2$3December$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)01(\s*[\|}<])", "{{$1$2$3January$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)02(\s*[\|}<])", "{{$1$2$3February$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?3(\s*[\|}<])", "{{$1$2$3March$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?4(\s*[\|}<])", "{{$1$2$3April$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?5(\s*[\|}<])", "{{$1$2$3May$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?6(\s*[\|}<])", "{{$1$2$3June$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?7(\s*[\|}<])", "{{$1$2$3July$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?8(\s*[\|}<])", "{{$1$2$3August$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)0?9(\s*[\|}<])", "{{$1$2$3September$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)10(\s*[\|}<])", "{{$1$2$3October$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)11(\s*[\|}<])", "{{$1$2$3November$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)12(\s*[\|}<])", "{{$1$2$3December$4");
//convert date month parameters to date (when month also contains year)
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{1,2})\s*\|\s*(?:month|year)\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
//convert day/date month year parameters to date
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)da(?:te|y)(\s*=\s*\d{1,2}(?:-\d{1,2})?)(?:st|nd|rd|th)?\s*\|\s*(?:month|year)\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*\|\s*(?:year|month)\s*=\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3date$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)da(?:te|y)(\s*=\s*\d{1,2}(?:-\d{1,2})?)(?:st|nd|rd|th)?\s*\|\s*year\s*=\s*(\d{4})\s*\|\s*month\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?(\s*[\|}<])", "{{$1$2$3date$4 $6 $5$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)month\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*\|\s*da(?:te|y)(\s*=\s*\d{1,2}(?:-\d{1,2})?)(?:st|nd|rd|th)?\s*\|\s*year\s*=\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3date$5 $4 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)month\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*\|\s*year\s*=\s*(\d{4})\s*\|\s*da(?:te|y)(\s*=\s*\d{1,2}(?:-\d{1,2})?)(?:st|nd|rd|th)?\.?(\s*[\|}<])", "{{$1$2$3date$6 $4 $5$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year\s*=\s*(\d{4})\s*\|\s*da(?:te|y)(\s*=\s*\d{1,2}(?:-\d{1,2})?)(?:st|nd|rd|th)?\s*\|\s*month\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?(\s*[\|}<])", "{{$1$2$3date$5 $6 $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year\s*=\s*(\d{4})\s*\|\s*month\s*=\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*\|\s*da(?:te|y)(\s*=\s*\d{1,2}(?:-\d{1,2})?)(?:st|nd|rd|th)?\.?(\s*[\|}<])", "{{$1$2$3date$6 $5 $4$7");
//remove period from German day field
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Tag\s*=\s*\d{1,2})\.(\s*[\|}<])", "{{$1$2$3$4");
//convert date year parameters to date (no day)
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter))\.?\s*\|\s*(?:month|year)\s*=\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3date$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year\s*=\s*(\d{4})\s*\|\s*(?:date|year)(\s*=\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter))\.?(\s*[\|}<])", "{{$1$2$3date$5 $4$6");
//convert date/month year parameters to date (with day before)
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month)(\s*=\s*\d{1,2})(?:(?:st|nd|rd|th)\s*of)?(?: |\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*\|\s*year\s*=\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3date$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year\s*=\s*(\d{4})\s*\|\s*(?:date|month)(\s*=\s*\d{1,2})(?: |\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?,?(\s*[\|}<])", "{{$1$2$3date$5 $6 $4$7");
//convert date/month year parameters to date (with day after)
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month)(\s*=\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))\.?\s*(\d{1,2}),?\s*\|\s*year\s*=\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3date$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year\s*=\s*(\d{4})\s*\|\s*(?:date|month)(\s*=\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))\.?,?\s*(\d{1,2}),?(\s*[\|}<])", "{{$1$2$3date$5 $6, $4$7");
//convert fullwidth to regular digits
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)1(\d)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}1$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)2(\d)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}2$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)3(\d)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)4\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}4 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)5\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}5 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)6\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}6 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)7\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}7 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)8\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}8 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)9\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}9 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)0\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}0 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)1\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}1 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)2\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}2 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)3\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)4\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}4 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)5\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}5 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)6\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}6 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)7\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}7 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)8\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}8 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*\d)9\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4}\s*[\|}<])", "{{$1$2${3}9 $4 $5");
//remove extraneous parentheses and "issue"
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)[\(\[]?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)(\s*\d{1,2},)?\s*(\d{4})(?: issue)?[\)\]]?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)[\(\[]?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)(?: issue| edition)?\s*(\d{4})[\)\]]?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(\d{1,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*(\d{4})\s*issue(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)[\(\[](\d{1,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*(\d{4})[\)\]]?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)[\(\[](\d{4}-\d{2}-\d{2})[\)\]]?(\s*[\|}<])", "{{$1$2$3$4$5");
//remove extraneous bracket
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:archive-?|access|publication-?)?date|year)\s*=\s*)([\w\s-]+)\](\s*[\|}<])", "{{$1$2$3$4$5");
//unlink dates
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)\[\[(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2}(?:–\d{1,2})?)\]\](,)?\s*(\d{4})(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2})(,)?\s*\[\[(\d{4})\]\]\.?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)\[\[(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2})\]\](,)?\s*\[\[(\d{4})\]\]\.?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)\[\[(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2})(,)?\s*(\d{4})\]\]\.?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)\[\[(\d{4})[-–](\d{2})[-–](\d{2})\]\]\.?(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)\[\[(\d{4})[-–](\d{2})[-–](\d{2})\]\]\.?(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)\[\[(\d{4})[-–](\d{2})[-–](\d{2})\]\]\.?(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)\[+(\d{4}(?:-\d{2}-\d{2})?)\]+\.?(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(January|February|March|April|May|June|July|August|September|October|November|December)\s*(\d{0,2}),?\s*\[\[(\d{4}) NLL season\|\6\]\]\.?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(January|February|March|April|May|June|July|August|September|October|November|December)\s*(\d{0,2}),?\s*\{{by\|(\d{4})}}\.?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)\[\[(\d{2})[-–](\d{4})\]\](\s*[\|}<])", "{{$1$2$3$4-$5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)\[\[(\d{4}) in \w+\|\4\]\](\s*[\|}<])", "{{$1$2$3$4$5");
//remove italics and curly quotes
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(?:''|”)(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2}(?:–\d{1,2})?)(,)?\s*(\d{4})(?:''|”)(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
//remove "date" in date field
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)date\s*=?\s*(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2})(,)?\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
//remove "accessdate=" in accessdate field
ArticleText = Regex.Replace(ArticleText, @"{{(\s*INDOT map)([^}]+)(\s*\|\s*accessdate\s*=\s*)accessdate\s*=?\s*(\d{0,2}\s*(?:January|February|March|April|May|June|July|August|September|October|November|December)\s*\d{0,2})(,)?\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4$5 $6$7");
//fix range of years
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*\d{4})\s*(?:–|[-–-—])\s*([2-9]\d\s*[\|}<])", "{{$1$2$3–$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*\d{4})\s*(?:–|[-–-—])\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3–$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(\d{4})\s*(?:–|[-–-—\/]+)\s*(\d{4})\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(195\d)\s*(?:–|[-–-—\/])\s*(5\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(196\d)\s*(?:–|[-–-—\/])\s*(6\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(197\d)\s*(?:–|[-–-—\/])\s*(7\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(198\d)\s*(?:–|[-–-—\/])\s*(8\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(199\d)\s*(?:–|[-–-—\/])\s*(9\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(200\d)\s*(?:–|[-–-—\/])\s*(0\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)Winter,?\s*(201\d)\s*(?:–|[-–-—\/])\s*(1\d)\)?(\s*[\|}<])", "{{$1$2$3Winter $4–$5$6");
//fix range of months with duplicate year
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?\s*(\d{4})(?: |\s)?(?:[-–—\/]|–)?(?: |\s)?(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?,?\s*\5,?(\s*[\|}<])", "{{$1$2$3$4–$6 $5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?\s*(\d{4})\|\4\]\](?: |\s)?(?:[-–—\/]|–)?(?: |\s)?(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?,?\s*\5,?(\s*[\|}<])", "{{$1$2$3$4–$6 $5$7");
//fix range of months (same year)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|lay|publication-?)?date\s*=\s*)\(?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?(?: |\s)?(?:[-–—\/\?]|–|to)?(?: |\s)?(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*\.?,?(?: |\s*)(\d{4})[,\)]?(\s*[\|}<])", "{{$1$2$3$4–$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:month|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?(?: |\s)*(?:[-–—\/\?]|–|to)?(?: |\s)*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*\.?,?\s*(\d{4}),?(\s*[\|}<])", "{{$1$2$3date$4$5–$6 $7$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?(?: |\s)*(?:[-–—\/\?]|–|to)?(?: |\s)*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*\.?,?(\s*[\|}<])", "{{$1$2$3month$4$5–$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{4})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?(?: |\s)*(?:[-–—\/\?]|–|to)?(?: |\s)*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*\.?(\s*[\|}<])", "{{$1$2$3date$4$6–$7 $5$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?(?: |\s)*(?:[-–—\/\?]|–|to)?(?: |\s)*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*\.?(\s*[\|}<])", "{{$1$2$3$4–$5 $6");
//fix range of months (different years)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?\s*(\d{4})(?: |\s)*(?:[-–—\/]|–)?(?: |\s)*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?,?\s*(\d{4}),?(\s*[\|}<])", "{{$1$2$3$4 $5 – $6 $7$8");
//fix range of days within a month
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?,?\s*(\d{4})\s*(?:[-–—]|to|–)\s*(\d{1,2})\s*\4\s*\5\.?(\s*[\|}<])", "{{$1$2$3–$6 $4 $5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{1,2})\s*(?:[-–—]|to|–)\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?,?\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3–$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*(\d{1,2})\s*(?:[-\/—–]|to|–)\s*(\d{1,2})(?:th)?\s*[,\.]?\s*(\d{4})[\.,]?(\s*[\|}<])", "{{$1$2$3date$4$5 $6–$7, $8$9");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*(\d{1,2})\s*(?:[-\/—–]|to|–)\s*\5\s*(\d{1,2})(?:th)?\s*[,\.]?\s*(\d{4})[\.,]?(\s*[\|}<])", "{{$1$2$3date$4$5 $6–$7, $8$9");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*(\d{1,2}),?\s*(\d{4}),?\s*(?:[-\/—–]|to|–)\s*\5\s*(\d{1,2})(?:th)?\s*[,\.]?\s*\7[\.,]?(\s*[\|}<])", "{{$1$2$3date$4$5 $6–$8, $7$9");
//fix range of dates within a year
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?)\.?\s*(\d{1,2})(?: |\s)*(?:[-−–—\/]|to|–)?(?: |\s)*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*(\d{1,2}),?\s*(\d{4}),?(\s*[\|}<])", "{{$1$2$3$4 $5 – $6 $7, $8$9");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?)\.?\s*(\d{1,2}),?\s*(\d{4})(?: |\s)*(?:[-−–—\/]|to|–)?(?: |\s)*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*(\d{1,2}),?\s*\6,?(\s*[\|}<])", "{{$1$2$3$4 $5 – $7 $8, $6$9");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?)\.?,?\s*(\d{4})(?: |\s)*(?:[-−–—\/]|to|–)?(?: |\s)*(\d{1,2})\s*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?,?\s*\5,?(\s*[\|}<])", "{{$1$2$3 $4 – $6 $7, $5$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?)\.?(?: |\s)*(?:[-−–—\/]|–)\s*(\d{1,2})\s*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?,?\s*(\d{4}),?(\s*[\|}<])", "{{$1$2$3 $4 – $5 $6 $7$8");
//fix range of dates (different years)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)|Dec(?:ember)?)\.?\s*(\d{1,2}),?\s*(\d{4})(?: |\s)*(?:[-–—\/]|–|to)?(?: |\s)*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)|Dec(?:ember)?)\.?\s*(\d{1,2}),?\s*(\d{4}),?(\s*[\|}<])", "{{$1$2$3$4 $5, $6 – $7 $8, $9$10");
//convert yyyy mmm-mmm to Mmm-mmm yyyy
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(\d{4})[-–\s](Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\s*(?:[-–—]|–)\s*(Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)(\s*[\|}<])", "{{$1$2$3$5–$6 $4$7");
//convert yyyy-m to Mmmm yyyy - different rules for archive-?/access-?date
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01][3-9])[-–]0?3(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01][4-9])[-–]0?4(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01][5-9])[-–]0?5(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01][6-9])[-–]0?6(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01][7-9])[-–]0?7(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01][89])[-–]0?8(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)date\s*=\s*)(20[01]9)[-–]0?9(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19(?:0[2-9]|[1-9][1-9]))[-–]01(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]02(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]03(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]04(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]05(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]06(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]07(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]08(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[1-9][1-9])[-–]09(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[2-9]\d)[-–]10(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19[2-9]\d)[-–]11(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(19(?:1[3-9]|[2-9]\d))[-–]12(\s*[\|}<])", "{{$1$2$3December $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}[3-9])[-–]0?3(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}[4-9])[-–]0?4(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}[5-9])[-–]0?5(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}[6-9])[-–]0?6(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}[7-9])[-–]0?7(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}[89])[-–]0?8(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)([12]\d{2}9)[-–]0?9(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[2-9]|1\d|2[0-3]))[-–]01(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[3-9]|1\d|2[0-3]))[-–]02(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[4-9]|1\d|2[0-2]))[-–]03(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[5-9]|1\d|2[0-2]))[-–]04(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[6-9]|1\d|2[0-2]))[-–]05(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[7-9]|1\d|2[0-2]))[-–]06(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:0[8-9]|1\d|2[0-2]))[-–]07(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:09|1\d|2[0-2]))[-–]08(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:1\d|2[0-2]))[-–]09(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:1[1-9]|2[0-2]))[-–]10(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:1[2-9]|2[0-2]))[-–]11(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(20(?:1[3-9]|2[0-2]))[-–]12(\s*[\|}<])", "{{$1$2$3December $4$5");
//convert mm-yyyy
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?1[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3January $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?2[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3February $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?3[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3March $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?4[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3April $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?5[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3May $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?6[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3June $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?7[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3July $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?8[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3August $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)0?9[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3September $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)10[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3October $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)11[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3November $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)12[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3December $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?1[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4January $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?2[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4February $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?3[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4March $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?4[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4April $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?5[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4May $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?6[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4June $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?7[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4July $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?8[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4August $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)0?9[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4September $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)10[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4October $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)11[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4November $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)12[-–\/](\d{4}\s*[\|}<])", "{{$1$2$3date$4December $5");
//convert yyyy mmm to mmm yyyy
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(\d{4})[,\.]?(?: |[\s*-\/])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\.?(\s*[\|}<])", "{{$1$2$3$5 $4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)(\d{4})[,\.]?(?: |[\s-\(]*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)\)?(\s*[\|}<])", "{{$1$2$3date$4$6 $5$7");
//convert yyyy mmm dd to mmm dd yyyy
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(\d{4}),?(?: |[\s*-])?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?[\s*-](\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{4}),?(?: |[\s*-])?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?[\s*-](\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(\d{4}),?(?: |[\s*-])?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?[\s*-](\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(\d{4}),?(?: |[\s*-])?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?[\s*-](\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)(\d{4}),?(?: |[\s*-])?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?[\s*-](\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3date$4$6 $7, $5$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{4}),?(?: |[\s*-])?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?[\s*-](\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*NCES)([^}]+)(\s*\|\s*access_date\s*=\s*)(\d{4}),?(?: |\s*)?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:\s*the)?\s*(\d{1,2})(?:st|nd|rd|th)?[,;]?(\s*[\|}<])", "{{$1$2$3$5 $6, $4$7");
//convert yyyy mmm dd-dd to mmm dd-dd yyyy
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(\d{4}),?(?: |[\s*-])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[\s*-](\d{1,2})\s*[-–]\s*(\d{1,2}),?(\s*[\|}<])", "{{$1$2$3$5 $6–$7, $4$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)(\d{4}),?(?: |\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2})\s*[-–]\s*(\d{1,2}),?(\s*[\|}<])", "{{$1$2$3date$4$6 $7–$8, $5$9");
//convert yyyy dd mmm to dd mmm yyyy
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(\d{4})[-,\s]*(\d{1,2})[-\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s*[\|}<])", "{{$1$2$3$5 $6 $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{4})[-,\s]*(\d{1,2})[-\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s*[\|}<])", "{{$1$2$3$5 $6 $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:publication-?)?date\s*=\s*)(\d{4})[-,\s]*(\d{1,2})[-\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s*[\|}<])", "{{$1$2$3$5 $6 $4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)(\d{4})[-,\s]*(\d{1,2})[-\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s*[\|}<])", "{{$1$2$3date$4$6 $7 $5$8");
//convert period to comma
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(January|February|March|April|May|June|July|August|September|October|November|December)\s*(\d{1,2})\.\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//remove time from date
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Cit(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*20[0-2]\d-[01]\d-[0-3]\d)\w{3}[01]\d\:[0-5]\d\:[0-5]\d\+0\d\:00(\s*[\|}<])", "{{$1$2$3$4");
//comment out time
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Cit(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4})\s*(\(?(?:,|@|at|-)?\s*\d{1,2}[:\.]\d{2}(?:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Cit(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(?:on\s*)?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}),?\s*(\(?(?:,|@|at|to|-|;|\/)?\s*\d{1,2}[:\.]\d{2}(?::\d{2})?(?:(?:\s| )?[AaPp]\.?[Mm]\.?)?\(?(?:\s*\w{2,3}|\s*Arizona Time)?\)?)(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Cit(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(?:on\s*)?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}),?\s*(\(?(?:,|@|at|to|-|;|\/)?\s*\d{1,2}[:\.]\d{2}(?::\d{2})?(?:(?:\s| )?[AaPp]\.?[Mm]\.?)?\(?(?:\s*\w{2,3}|\s*Arizona Time)?\)?)(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Cit(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(?:Updated:?\s*)?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?[\.,]*\s*(\d{0,2}[\s-]*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?[\s-]*\d{0,2}(?:st|nd|rd|th)?,?[\s-]*\d{4}),?\s*(\(?(?:,|@|at|to|-|;|\/)?\s*\d{1,2}[:\.]\d{2}(?::\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\(?(?:\s*\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3date$4$5 <!-- $6 --> $7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*datum\s*=\s*)(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{4})\s*(\d{1,2}:\d{2}(?::\d{2})?)(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(?:Updated:?\s*)?(\d{4})[-–=\s:‐\.‑\/年](\d{2})[-–=\s:‐\.‑\/月](\d{2})日?\s*(\(?(?:,|at|-|T)?\s*\d{1,2}:\d{2}(?:\:\d{2})?(?:\s| |Z)?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(?:Updated:?\s*)?(\d{4})[-–=\s:‐\.‑\/年](\d{2})[-–=\s:‐\.‑\/月](\d{2})日?\s*(\(?(?:,|at|-)?\s*\d{1,2}:\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(?:Updated:?\s*)?(\d{4})[-–=\s:‐\.‑\/年](\d{2})[-–=\s:‐\.‑\/月](\d{2})日?\s*(\(?(?:,|at|-)?\s*\d{1,2}:\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(?:Updated:?\s*)?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?[\.,]?\s*(\d{4})[-–=\s:‐\.‑\/年](\d{2})[-–=\s:‐\.‑\/月](\d{2})日?\s*(\(?(?:,|at|-)?(?:\s\d:|\s*\d{2}):\d{2}(?:\:\d{2})?(?: | )?(?:[AaPp]\.?[Mm]\.?)? *\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])[-\/\.=\s](\d{4})(\(?(?:,|at|-)?(?:\s\d:|\s*\d{2}):\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$6-$5-$4 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])[-\/\.=\s](\d{4})(\(?(?:,|at|-)?(?:\s\d:|\s*\d{2}):\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$6-$5-$4 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])[-\/\.=\s](\d{4})(\(?(?:,|at|-)?(?:\s\d:|\s*\d{2}):\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$6-$5-$4 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(\d{1,2}:\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{3})?\)?),?\s*(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*[\|}<])", "{{$1$2$3<!-- $4 --> $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{1,2}:\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{3})?\)?),?\s*(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*[\|}<])", "{{$1$2$3<!-- $4 --> $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(?:Updated:?\s*)?(\d{1,2}:\d{2}(?:\:\d{2})?(?:\s| )?(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{3}|UK)?\)?),?\s*(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*[\|}<])", "{{$1$2$3<!-- $4 --> $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(\d{1,2}\s*[AaPp]\.?[Mm]\.?\s*\(?(?:\w{3}|UK)?\)?),?\s*(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*[\|}<])", "{{$1$2$3<!-- $4 --> $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{1,2}\s*[AaPp]\.?[Mm]\.?\s*\(?(?:\w{3}|UK)?\)?),?\s*(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*[\|}<])", "{{$1$2$3<!-- $4 --> $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(\d{1,2}\s*[AaPp]\.?[Mm]\.?\s*\(?(?:\w{3}|UK)?\)?),?\s*(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*[\|}<])", "{{$1$2$3<!-- $4 --> $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(2[01][01]\d)([01]\d)([0-3]\d)([0-2]\d[0-5]\d[0-5]\d)(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{4})[-–=\s:‐\.‑\/年](\d{2})[-–=\s:‐\.‑\/月](\d{2})(T\d{2}:\d{2}:\d{2}\.\d{3,6}-\d{2}:\d{2})(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(\d{1,2}[-\/]\d{1,2}[-\/]\d{4})\s+((?:\d{1,2}:\d{2}(?::\d{2})?)\s*(?:[AaPp]\.?[Mm]\.?)?\s*\(?(?:\w{3})?\)?)(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(?:Updated:?\s*)?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{2})[-–=\s:‐\.‑\/年](\d{2})[-–=\s:‐\.‑\/月](\d{4})日?\s*(\(?(?:,|at|-)?(?:\s\d:|\s*\d{1,2}):\d{2}(?:\:\d{2})?(?: | )?(?:[AaPp]\.?[Mm]\.?)? *\(?(?:\w{2,3})?\)?)(\s*[\|}<])", "{{$1$2$3$4-$5-$6 <!-- $7 --> $8");
//fixed commented out time
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Cit(?:e|ation))([^}]+)(\s*\|\s*(?:access)?date\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?,?\s*(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4}\s*)<!- – (.*?)-->(\s*[\|}<])", "{{$1$2$3$4<!-- $5-->$6");
//comment out time zone
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*)(\d{0,2}\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\.?\s*\d{0,2},?\s*\d{4})\s*(\([EIJP]ST)(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*)(\d{4}-\d{2}-\d{2})\s*(\(GMT\s[+-]\d*\))(\s*[\|}<])", "{{$1$2$3$4 <!-- $5 --> $6");
//remove "st", "nd", "rd", "th"
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2})(?:<sup>|\s*)?(?:st|nd|rd|th)(?:<\/sup>)?(?:,|\s*of)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})(?:<sup>|\s*)?(?:st|nd|rd|th)(?:<\/sup>)?(?:,|\s*of)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*\d{1,2})(?:<sup>|\s*)?(?:st|nd|rd|th)(?:<\/sup>)?(?:,|\s*of)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{1,2})(?:<sup>|\s*)?(?:st|nd|rd|th)(?:<\/sup>)?(?:,|\s*of)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3date$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,-\.\s]*(\d{1,2})\s*(?:st|nd|rd|th)[-,]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,-\.\s]*(\d{1,2})\s*(?:st|nd|rd|th)[-,]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,-\.\s]*(\d{1,2})\s*(?:st|nd|rd|th)[-,]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,-\.\s]*(\d{1,2})\s*(?:st|nd|rd|th)[-,]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{1,2})\s*(?:st|nd|rd|th),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:ITIS|IUCN))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{1,2})\s*(?:st|nd|rd|th),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:ITIS|IUCN))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})\s*(?:st|nd|rd|th)(?:,|\s*of)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
//remove "of"
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2})\s*(?:of|de)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})\s*(?:of|de)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{1,2})\s*(?:of|de)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{1,2}),\s*(?:of|de)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{1,2}),\s*(?:of|de)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{1,2}),\s*(?:of|de)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.\s]*(\d{1,2}),\s*(?:of|de)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//convert foreign languages/typos to English - dd mmm yyyy and mmm dd yyyy
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:janeiro|enero)(?: del?)?|gener|gennaio|ianuarie|Ionawr|j[au]+[mn][uaryi]+[tyz]?|јануар|janvier|leden|січня|января|январь|Януари|ocak|stycz(?:eń|nia)|yanvar),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:fevereiro|febrero?)(?: del?)?|febbraio|fr?[ae][bnv]e?r?[uy]?[rs]?[aeiu]+[rt]?[ituy]?e?|fevral|février|Chwefror|февраля|Февруари|фебруар|şubat|lutego|luty|únor),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?m[äa]r[çstz][os]?(?: del?)?|ma[rt]*[cs][adhj]?|maret|martie|марта?|Март|Μαρτίου|marzec|Mawrth|březen|března),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?abril(?: del?)?|a[opv][rt]?i[l;]?i?e?|apr?l|апреля|апрель|Април|duben|Ebrill|nisan|kwiecien|kwietnia|pril|ஏப்ரல்),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?ma[ijy][ago]?(?: del?)?|maggio|m[as][ir]?y|mei|ма[jя]|Май|май|mayıs|mya|květen|травня),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jun[hi]o?(?: del?)?|giugno|iunie|iyun|j?i?u[bmn]+[deiw]s?|ju[ei]n|јун|июня|июнь|Юни|haziran|červen|czerwca|czerwiec|Mehefin|червня),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jul[hiy]o?l?(?: del?)?|[ij]ulie|j?[uy][lk]+[ity]+|juillet|červenec|Gorffennaf|јул|luglio|июля|июль|Юли|temmuz|lipca|lipiec),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?agosto?(?: del?)?|ao[ûu]t|as?[uv]?[ins]?[dgs][eiu]+[ae]?[as]t[eius]*|авг(?:уст)?а?|ağustos|auh?ust|Awst|серпня|sierpie[nń]|sierpnia|srpen),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:septiembre|sep?tembr[eo]|s[temnprb]+[bhp]+[ae]r)(?: del?)?|septembrie|settemb[re]+|Сентября|Септември|септембар|сентябрь|eylül|Medi|wrzesien|wrzesnia|září),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?(?:octubre|outubro)(?: del?)?|[Óo][ckv]o?[rt]+o?[cepr]?[bnv]+[aeo]r|octombrie|o[ct]tobre|октября|октябрь|октобар|Октомври|ekim|Hydref|pa[zź]dziernika?|říjen|жовтня),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?novi?embr[eo](?: del?)?|noiembrie|[mnv]e?ou?[iv]*[mern]+[bv][ae]r?|Ноября|ноябрь|Ноември|новембар|листопада|kasım|listopada?|noyabr|Tachwedd),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:de[csz]embr[eo]|d[éi]ci?embre)(?: del?)?|d?e[csvz]m?e?w?mn?e?b+[ae]?r?|d[ec]+mber|decembrie|Decembwe|Disember|grudnia|Δεκεμβρίου|декабря|декабрь|Декември|децембар|aralık|grudzien|prosinec|Rhagfyr),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?))?,?(\s*[\|}<])", "{{$1$2$3December $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Jan\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Jan $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Feb\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Feb $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Mar\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Mar $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Apr\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Apr $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Jun\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Jun $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Jul\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Jul $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Aug\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Aug $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Sept?\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Sep $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)O[ck]x?t\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Oct $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)Nov\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Nov $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:De[cdsz]|Dic)\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Dec $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:janeiro|enero)(?: del?)?|gener|gennaio|ianuarie|Ionawr|j[au]+[mn][uaryi]+[tyz]?|јануар|janvier|leden|січня|января|январь|Януари|ocak|stycz(?:eń|nia)|yanvar),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:fevereiro|febrero?)(?: del?)?|febbraio|fr?[ae][bnv]e?r?[uy]?[rs]?[aeiu]+[rt]?[ituy]?e?|fevral|février|Chwefror|февраля|Февруари|фебруар|şubat|lutego|luty|únor),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?m[äa]r[çstz][os]?(?: del?)?|ma[rt]*[cs][adhj]?|maret|martie|марта?|Март|Μαρτίου|marzec|Mawrth|březen|března),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?abril(?: del?)?|a[opv][rt]?i[l;]?i?e?|apr?l|апреля|апрель|Април|duben|Ebrill|nisan|kwiecien|kwietnia|pril|ஏப்ரல்),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?ma[ijy][ago]?(?: del?)?|maggio|m[as][ir]?y|mei|ма[jя]|Май|май|mayıs|mya|květen|травня),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jun[hi]o?(?: del?)?|giugno|iunie|iyun|j?i?u[bmn]+[deiw]s?|ju[ei]n|јун|июня|июнь|Юни|haziran|červen|czerwca|czerwiec|Mehefin|червня),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jul[hiy]o?l?(?: del?)?|[ij]ulie|j?[uy][lk]+[ity]+|juillet|červenec|Gorffennaf|јул|luglio|июля|июль|Юли|temmuz|lipca|lipiec),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?agosto?(?: del?)?|ao[ûu]t|as?[uv]?[ins]?[dgs][eiu]+[ae]?[as]t[eius]*|авг(?:уст)?а?|ağustos|auh?ust|Awst|серпня|sierpie[nń]|sierpnia|srpen),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:septiembre|sep?tembr[eo]|s[temnprb]+[bhp]+[ae]r)(?: del?)?|septembrie|settemb[re]+|Сентября|Септември|септембар|сентябрь|eylül|Medi|wrzesien|wrzesnia|září),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?(?:octubre|outubro)(?: del?)?|[Óo][ckv]o?[rt]+o?[cepr]?[bnv]+[aeo]r|octombrie|o[ct]tobre|октября|октобар|октябрь|Октомври|ekim|Hydref|pa[zź]dziernika?|říjen|жовтня),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода|\.?)?)?\.?,?(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?novi?embr[eo](?: del?)?|noiembrie|[mnv]e?ou?[iv]*[mern]+[bv][ae]r?|Ноября|ноябрь|Ноември|новембар|листопада|kasım|listopada?|noyabr|Tachwedd),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:de[csz]embr[eo]|d[éi]ci?embre)(?: del?)?|d?e[csvz]m?e?w?mn?e?b+[ae]?r?|d[ec]+mber|decembrie|Decembwe|Disember|grudnia|Δεκεμβρίου|декабря|декабрь|Декември|децембар|aralık|grudzien|prosinec|Rhagfyr),?\s*(\d{0,2}(?:st|nd|rd|th)?,?\.?\s*\d{4})(?:\s*г(?:ода)?)?\.?,?(\s*[\|}<])", "{{$1$2$3December $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Jan\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Jan $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Feb\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Feb $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Mar\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Mar $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Apr\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Apr $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Jun\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Jun $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Jul\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Jul $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Aug\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Aug $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Sept?\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Sep $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)O[ck]x?t\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Oct $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)Nov\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Nov $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,-]?\s*)(?:De[cdsz]|Dic)\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Dec $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?(?:janeiro|enero)(?: del?)?|gener|gennaio|ianuarie|Ionawr|j[au]+[mn][uaryi]+[tyz]?|јануар|janvier|leden|січня|января|январь|Януари|ocak|stycz(?:eń|nia)|yanvar),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4January $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?(?:fevereiro|febrero?)(?: del?)?|febbraio|fr?[ae][bnv]e?r?[uy]?[rs]?[aeiu]+[rt]?[ituy]?e?|fevral|février|Chwefror|февраля|Февруари|фебруар|февраль|şubat|lutego|luty|únor),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4February $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?m[äa]r[çstz][os]?(?: del?)?|ma[rt]*[cs][adhj]?|maret|martie|марта?|Март|Μαρτίου|апреля|marzec|Mawrth|březen|března),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4March $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:d[e']\s*)?abril(?: del?)?|a[opv][rt]?i[l;]?i?e?|apr?l|апреля|апрель|Април|duben|Ebrill|nisan|kwiecien|kwietnia|pril|ஏப்ரல்),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4April $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?ma[ijy][ago]?(?: del?)?|maggio|m[as][ir]?y|mei|ма[jя]|Май|май|mayıs|mya|květen|травня),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4May $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?jun[hi]o?(?: del?)?|giugno|iunie|iyun|j?i?u[bmn]+[deiw]s?|ju[ei]n|јун|июня|июнь|Юни|haziran|červen|czerwca|czerwiec|Mehefin|червня),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4June $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?jul[hiy]o?l?(?: del?)?|[ij]ulie|j?[uy][lk]+[ity]+|juillet|červenec|Gorffennaf|јул|luglio|июля|июль|Юли|temmuz|lipca|lipiec),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4July $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?agosto?(?: del?)?|ao[ûu]t|as?[uv]?[ins]?[dgs][eiu]+[ae]?[as]t[eius]*|авг(?:уст)?а?|ağustos|auh?ust|Awst|серпня|sierpie[nń]|sierpnia|srpen),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4August $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?(?:septiembre|sep?tembr[eo]|s[temnprb]+[bhp]+[ae]r)(?: del?)?|septembrie|settemb[re]+|Сентября|Септември|септембар|сентябрь|eylül|Medi|wrzesien|wrzesnia|září),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4September $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:d[e']\s*)?(?:octubre|outubro)(?: del?)?|[Óo][ckv]o?[rt]+o?[cepr]?[bnv]+[aeo]r|octombrie|o[ct]tobre|октября|октобар|октябрь|Октомври|ekim|Hydref|pa[zź]dziernika?|říjen|жовтня),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4October $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?novi?embr[eo](?: del?)?|noiembrie|[mnv]e?ou?[iv]*[mern]+[bv][ae]r?|Ноября|ноябрь|Ноември|новембар|листопада|kasım|listopada?|noyabr|Tachwedd),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4November $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|month|year)(\s*=\s*\d{0,2}[\.,º]?\s*)(?:(?:de )?(?:de[csz]embr[eo]|d[éi]ci?embre)(?: del?)?|d?e[csvz]m?e?w?mn?e?b+[ae]?r?|d[ec]+mber|decembrie|Decembwe|Disember|grudnia|Δεκεμβρίου|декабря|декабрь|Декември|децембар|aralık|grudzien|prosinec|Rhagfyr),?\s*(\d{0,2}(?:st|nd|rd|th)?,*\.?\s*\d{4})(?:\s*г(?:ода|\.?))?\.?,?(\s*[\|}<])", "{{$1$2$3date$4December $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Jan\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Jan $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Feb\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Feb $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Mar\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Mar $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Apr\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Apr $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Jun\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Jun $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Jul\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Jul $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Aug\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Aug $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Sept?\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Sep $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)O[ck]x?t\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Oct $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)Nov\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Nov $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}[\.,-]?\s*)(?:De[cdsz]|Dic)\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3date$4Dec $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)spr(?:ing)?\s*,?\s*(\d{4}\s*[\|}<])", "{{$1$2$3date$4Spring $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)summer\s*,?\s*(\d{4}\s*[\|}<])", "{{$1$2$3date$4Summer $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)autumn\s*,?\s*(\d{4}\s*[\|}<])", "{{$1$2$3date$4Autumn $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)fall\s*,?\s*(\d{4}\s*[\|}<])", "{{$1$2$3date$4Fall $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)winter\s*,?\s*(\d{4}\s*[\|}<])", "{{$1$2$3date$4Winter $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date)(\s*=\s*\d{0,2}[\.,-]?\s*)Sept?\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3$4Sep $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:janeiro|enero|gener|gennaio|ianuarie|Ionawr|j[au]+[mn][uaryi]+[tyz]?|јануар|janvier|leden|січня|января|январь|Януари|ocak|stycz(?:eń|nia)|yanvar)(\s*[\|}<])", "{{$1$2$3January$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:fevereiro|febrero?|febbraio|fr?[ae][bnv]e?r?[uy]?[rs]?[aeiu]+[rt]?[ituy]?e?|fevral|février|Chwefror|февраля|Февруари|фебруар|февраль|şubat|lutego|luty|únor)(\s*[\|}<])", "{{$1$2$3February$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:m[äa]r[çstz][os]?|ma[rt]*[cs][adhj]?|maret|martie|марта?|Март|Μαρτίου|marzec|Mawrth|březen|března)(\s*[\|}<])", "{{$1$2$3March$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:a[bopv][tr]?i[l;]?i?e?|apr?l|апреля|апрель|Април|duben|Ebrill|nisan|kwiecien|kwietnia|pril|ஏப்ரல்)(\s*[\|}<])", "{{$1$2$3April$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:ma[ijy][ago]?|maggio|m[as][ir]?y|mei|ма[jя]|Май|май|mayıs|mya|květen|травня)(\s*[\|}<])", "{{$1$2$3May$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:jun[hi]o?|giugno|iunie|iyun|j?i?u[bmn]+[deiw]s?|ju[ei]n|јун|июня|июнь|Юни|haziran|červen|czerwca|czerwiec|Mehefin|червня)(\s*[\|}<])", "{{$1$2$3June$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:jul[hiy]o?l?|[ij]ulie|j?[uy][lk]+[ity]+|juillet|červenec|Gorffennaf|јул|luglio|июля|июль|Юли|temmuz|lipca|lipiec)(\s*[\|}<])", "{{$1$2$3July$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:agosto?|ao[ûu]t|as?[uv]?[ins]?[dgs][eiu]+[ae]?[as]t[eius]*|авг(?:уст)?а?|ağustos|auh?ust|Awst|серпня|sierpie[nń]|sierpnia|srpen)(\s*[\|}<])", "{{$1$2$3August$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:septiembre|sep?tembr[eo]|s[temnprb]+[bhp]+[ae]r|septembrie|settemb[re]+|Сентября|Септември|септембар|сентябрь|eylül|Medi|wrzesien|wrzesnia|září)(\s*[\|}<])", "{{$1$2$3September$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:octubre|outubro|[Óo][ckv]o?[rt]+o?[cepr]?[bnv]+[aeo]r|octombrie|o[ct]tobre|октября|октобар|октябрь|Октомври|ekim|Hydref|pa[zź]dziernika?|říjen|жовтня)(\s*[\|}<])", "{{$1$2$3October$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:novi?embr[eo]|noiembrie|[mnv]e?ou?[iv]*[mern]+[bv][ae]r?|Ноября|ноябрь|Ноември|новембар|листопада|kasım|listopada?|noyabr|Tachwedd)(\s*[\|}<])", "{{$1$2$3November$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:de[csz]embr[eo]|d[éi]ci?embre|d?e[csvz]m?e?w?mn?e?b+[ae]?r?|d[ec]+mber|decembrie|Decembwe|Disember|grudnia|Δεκεμβρίου|декабря|декабрь|Декември|децембар|aralık|grudzien|Rhagfyr)(\s*[\|}<])", "{{$1$2$3December$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Jan[\.,]?(\s*[\|}<])", "{{$1$2$3Jan$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Feb[\.,]?(\s*[\|}<])", "{{$1$2$3Feb$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Mar[\.,]?(\s*[\|}<])", "{{$1$2$3Mar$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Apr[\.,]?(\s*[\|}<])", "{{$1$2$3Apr$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Jun[\.,]?(\s*[\|}<])", "{{$1$2$3Jun$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Jul[\.,]?(\s*[\|}<])", "{{$1$2$3Jul$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Aug[\.,]?(\s*[\|}<])", "{{$1$2$3Aug$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Sept?[\.,]?(\s*[\|}<])", "{{$1$2$3Sep$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)O[ck]x?t[\.,]?(\s*[\|}<])", "{{$1$2$3Oct$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)Nov[\.,]?(\s*[\|}<])", "{{$1$2$3Nov$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)(?:De[cdsz]|Dic)[\.,]?(\s*[\|}<])", "{{$1$2$3Dec$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)spr(?:ing)?[\.,]?(\s*[\|}<])", "{{$1$2$3Spring$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)summer[\.,]?(\s*[\|}<])", "{{$1$2$3Summer$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)autumn[\.,]?(\s*[\|}<])", "{{$1$2$3Autumn$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)fall[\.,]?(\s*[\|}<])", "{{$1$2$3Fall$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*)winter[\.,]?(\s*[\|}<])", "{{$1$2$3Winter$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Crockford)([^}]+)(\s*\|\s*accessed\s*=\s*\d{0,2}[\.,-]?\s*)Sept?\.?\s*(\d{0,2}[\.,-]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Sep $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)January?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 January $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)February?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 February $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)März(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 March $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)April(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 April $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)Ma[iy](?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 May $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juni(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 June $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juli(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 July $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)August(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 August $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)Septemb[er]+(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 September $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)Oktober(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 October $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)November(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 November $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{0,2})[\.,]?(?: |\s*)De[cz]ember(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 December $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)January?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 January $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)February?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 February $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)März(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 March $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)April(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 April $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Ma[iy](?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 May $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juni(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 June $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juli(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 July $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)August(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 August $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Septemb[er]+(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 September $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Oktober(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 October $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)November(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 November $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)De[cz]ember(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 December $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:janeiro|enero)(?: del?)?|gener|gennaio|ianuarie|Ionawr|j[au]+[mn][uaryi]+[tyz]?|јануар|janvier|leden|січня|января|январь|Януари|ocak|stycz(?:eń|nia)|yanvar)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:fevereiro|febrero?)(?: del?)?|febbraio|fr?[ae][bnv]e?r?[uy]?[rs]?[aeiu]+[rt]?[ituy]?e?|fevral|février|Chwefror|февраля|Февруари|фебруар|февраль|şubat|lutego|luty|únor)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?m[äa]r[çstz][os]?(?: del?)?|ma[rt]*[cs][adhj]?|maret|martie|марта?|Март|Μαρτίου|marzec|Mawrth|březen|března)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?abril(?: del?)?|a[opv][rt]?i[l;]?i?e?|apr?l|апреля|апрель|Април|duben|Ebrill|nisan|kwiecien|kwietnia|pril|ஏப்ரல்)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?ma[ijy][ago]?(?: del?)?|maggio|m[as][ir]?y|mei|ма[jя]|Май|май|mayıs|mya|květen|травня)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jun[hi]o?(?: del?)?|giugno|iunie|iyun|j?i?u[bmn]+[deiw]s?|ju[ei]n|јун|июня|июнь|Юни|haziran|červen|czerwca|czerwiec|Mehefin|червня)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jul[hiy]o?l?(?: del?)?|[ij]ulie|j?[uy][lk]+[ity]+|juillet|červenec|Gorffennaf|јул|luglio|июля|июль|Юли|temmuz|lipca|lipiec)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?agosto?(?: del?)?|ao[ûu]t|as?[uv]?[ins]?[dgs][eiu]+[ae]?[as]t[eius]*|авг(?:уст)?а?|ağustos|auh?ust|Awst|sierpie[nń]|серпня|sierpnia|srpen)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:septiembre|sep?tembr[eo]|s[tenmprb]+[bhp]+[ae]r)(?: del?)?|septembrie|settemb[re]+|Сентября|Септември|септембар|сентябрь|eylül|Medi|wrzesien|wrzesnia|září)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?(?:octubre|outubro)(?: del?)?|[Óo][ckv]o?[rt]+o?[cepr]?[bnv]+[aeo]r|octombrie|o[ct]tobre|октября|октобар|октябрь|Октомври|ekim|Hydref|pa[zź]dziernika?|říjen|жовтня)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?: de)?novi?embr[eo](?: del?)?|noiembrie|[mnv]e?ou?[iv]*[mern]+[bv][ae]r?|Ноября|ноябрь|Ноември|новембар|листопада|kasım|listopada?|noyabr|Tachwedd)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:de[csz]embr[eo]|d[éi]ci?embre)(?: del?)?|d?e[csvz]m?e?w?mn?e?b+[ae]?r?|d[ec]+mber|decembrie|Decembwe|Disember|grudnia|Δεκεμβρίου|декабря|декабрь|Декември|децембар|aralık|grudzien|prosinec|Rhagfyr)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3December $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)Sept?\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Sep $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)O[ck]x?t\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Oct $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*ITIS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}[\.,]?\s*)(?:De[cdsz]|Dic)\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Dec $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:janeiro|enero)(?: del?)?|gener|gennaio|ianuarie|Ionawr|j[au]+[mn][uaryi]+[tyz]?|јануар|janvier|leden|січня|января|январь|Януари|ocak|stycz(?:eń|nia)|yanvar)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3January $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:fevereiro|febrero?)(?: del?)?|febbraio|fr?[ae][bnv]e?r?[uy]?[rs]?[aeiu]+[rt]?[ituy]?e?|fevral|février|Chwefror|февраля|Февруари|фебруар|февраль|şubat|lutego|luty|únor)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3February $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?m[äa]r[çstz][os]?(?: del?)?|ma[rt]*[cs][adhj]?|maret|martie|марта?|Март|Μαρτίου|marzec|Mawrth|březen|března)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3March $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?abril(?: del?)?|a[opv][rt]?i[l;]?i?e?|apr?l|апреля|апрель|Април|duben|Ebrill|nisan|kwiecien|kwietnia|pril|ஏப்ரல்)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3April $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?ma[ijy][ago]?(?: del?)?|maggio|m[as][ir]?y|mei|ма[jя]|Май|май|mayıs|mya|květen|травня)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3May $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jun[hi]o?(?: del?)?|giugno|iunie|iyun|j?i?u[bmn]+[deiw]s?|ju[ei]n|јун|июня|июнь|Юни|haziran|červen|czerwca|czerwiec|Mehefin|червня)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3June $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?jul[hiy]o?l?(?: del?)?|[ij]ulie|j?[uy][lk]+[ity]+|juillet|červenec|Gorffennaf|јул|luglio|июля|июль|Юли|temmuz|lipca|lipiec)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3July $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?agosto?(?: del?)?|ao[ûu]t|as?[uv]?[ins]?[dgs][eiu]+[ae]?[as]t[eius]*|авг(?:уст)?а?|ağustos|auh?ust|Awst|серпня|sierpie[nń]|sierpnia|srpen)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3August $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:septiembre|sep?tembr[eo]|s[temnprb]+[bhp]+[ae]r)(?: del?)?|septembrie|settemb[re]+|Сентября|Септември|септембар|сентябрь|eylül|Medi|wrzesien|wrzesnia|září)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3September $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:d[e']\s*)?(?:octubre|outubro)(?: del?)?|[Óo][ckv]o?[rt]+o?[cepr]?[bnv]+[aeo]r|octombrie|o[ct]tobre|октября|октобар|октябрь|Октомври|ekim|Hydref|pa[zź]dziernika?|říjen|жовтня)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3October $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?: de)?novi?embr[eo](?: del?)?|noiembrie|[mnv]e?ou?[iv]*[mern]+[bv][ae]r?|Ноября|ноябрь|Ноември|новембар|листопада|kasım|listopada?|noyabr|Tachwedd)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3November $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:(?:de )?(?:de[csz]embr[eo]|d[éi]ci?embre)(?: del?)?|d?e[csvz]m?e?w?mn?e?b+[ae]?r?|d[ec]+mber|decembrie|Decembwe|Disember|grudnia|Δεκεμβρίου|декабря|декабрь|Декември|децембар|aralık|grudzien|prosinec|Rhagfyr)\s*(\d{0,2}(?:st|nd|rd|th)?,?\s*\d{4})(?:\s*г(?:ода|\.?))?(\s*[\|}<])", "{{$1$2$3December $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)Sept?\.?\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Sep $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)O[ck]x?t\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Oct $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{0,2}[\.,]?\s*)(?:De[cdsz]|Dic)\s*(\d{0,2}[\.,]?\s*\d{4}\s*[\|}<])", "{{$1$2$3Dec $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)January?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 January $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)February?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 February $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)März(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 March $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)April(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 April $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)Ma[iy](?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 May $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juni(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 June $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juli(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 July $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)August(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 August $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)Septemb[er]+(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 September $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)Oktober(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 October $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)November(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 November $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*\d{0,2})[\.,]?(?: |\s*)De[cz]ember(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 December $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Januar(\s*\d{4}\s*[\|}<])", "{{$1$2$3January$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Februar(\s*\d{4}\s*[\|}<])", "{{$1$2$3February$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)März(\s*\d{4}\s*[\|}<])", "{{$1$2$3March$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Mai(\s*\d{4}\s*[\|}<])", "{{$1$2$3May$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Juni(\s*\d{4}\s*[\|}<])", "{{$1$2$3June$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Juli(\s*\d{4}\s*[\|}<])", "{{$1$2$3July$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Septembre(\s*\d{4}\s*[\|}<])", "{{$1$2$3September$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Oktober(\s*\d{4}\s*[\|}<])", "{{$1$2$3October$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)Dezember(\s*\d{4}\s*[\|}<])", "{{$1$2$3December$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Januar(\s*[\|}<])", "{{$1$2$3January$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Februar(\s*[\|}<])", "{{$1$2$3February$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)März(\s*[\|}<])", "{{$1$2$3March$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Mai(\s*[\|}<])", "{{$1$2$3May$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Juni(\s*[\|}<])", "{{$1$2$3June$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Juli(\s*[\|}<])", "{{$1$2$3July$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Septembre(\s*[\|}<])", "{{$1$2$3September$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Oktober(\s*[\|}<])", "{{$1$2$3October$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Monat\s*=\s*)Dezember(\s*[\|}<])", "{{$1$2$3December$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)January?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 January $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)February?(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 February $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)März(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 March $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)April(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 April $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Ma[iy](?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 May $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juni(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 June $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Juli(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 July $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)August(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 August $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Septemb[er]+(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 September $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)Oktober(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 October $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)November(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 November $4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Literatur)([^}]+)(\s*\|\s*Zugriff\s*=\s*\d{0,2})[\.,]?(?: |\s*)De[cz]ember(?: |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 December $4");
//remove extraneous commas/periods after month
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*air-?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s-]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s-]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s-]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s-]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3date$4$5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s-]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s-]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{1,2})\.?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s]+(?:of\s*)?(\d{4)}\)?(\s*[\|}<])", "{{$1$2$3 $4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*(?:access-?date|downloaded)\s*=\s*\d{1,2})\.?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3 $4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*NCES)([^}]+)(\s*\|\s*access_date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)[,\.\s]+(?:of\s*)?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
//remove day of week
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(?:on\s)?\(?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\.,;\s]*(\d{1,2})(?:st|nd|rd|th|,)?\s*(?:of\s*)?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\.?\s*(\d{4})[\),\.]?(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)(?:on\s)?\(?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\.,;\s]*(\d{1,2})(?:st|nd|rd|th|,)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\.?\s*(\d{4})\)?,?(\s*[\|}<])", "{{$1$2$3date$4$5 $6 $7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(?:on\s)?\(?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\.;,\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\.?\s*(\d{1,2})(?:st|nd|rd|th)?[,\s]*(\d{4})\)?,?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\.?\s*(\d{1,2})(?:st|nd|rd|th)?,?\s*(\d{4})\s*[,-]?\s*\(?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\)\.,\s]*(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(\d{1,2})(?:st|nd|rd|th)?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\.?\s*(\d{4})\s*[,-]?\s*\(?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\)\.,]*(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(\d{4}-\d{2}-\d{2})[,-]?\s*\(?(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\)\.,]*(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\.,\s]*(\d{2})[\s-](\d{2})[\s-](\d{4})(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:air|archive|access|publication)?-?date\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(?:day)?[\.,\s]*(\d{4})[\s-](\d{2})[\s-](\d{2})(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
//remove and " " (no, that's not a normal space - it's ALT+0160
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{1,2}),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*) (Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{1,2}),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2})(?: ?| |\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?(?: ?| |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{1,2}),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*) (Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{1,2}),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*) ?(\d{1,2})(?: ?| |\s)*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)(?: ?| )*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)(?: ?| |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)(?: ?| )*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{1,2}),?(?: ?| |\s*)(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*\d{1,2})(?: ?| |\s)*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*\d{4}) +(\s*[\|}<])", "{{$1$2$3 $4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*\d{1,2})(?: ?| )*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s*[\|}<])", "{{$1$2$3 $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?: ?| |\s)*(\d{1,2}),?(?: ?| |\s)*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{1,2})(?: | )(January|February|March|April|May|June|July|August|September|October|November|December),?(?: | )(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*NHLE)([^}]+)(\s*\|\s*accessdate\s*=\s*\d{1,2})(?: | )(January|February|March|April|May|June|July|August|September|October|November|December),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
//remove nbsp template
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?){{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?){{nbsp}}(\d{1,2}),?{{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2}){{nbsp}}(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?{{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?){{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?){{nbsp}}(\d{1,2}),?{{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(\d{1,2}){{nbsp}}(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?{{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter){{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?){{nbsp}}(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?){{nbsp}}(\d{1,2}),?{{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*\d{1,2}){{nbsp}}(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?{{nbsp}}(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*month\s*=\s*\d{1,2}){{nbsp}}(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s*[\|}<])", "{{$1$2$3 $4$5");
//change invalid separators to hyphens in yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)[-\/\[""']?(\s*\d{4})[-–−_=\s:‐\.‑\/年년—]+(\d{1,2})[-–−_=\s:‐\.‑\/月월—]+(\d{1,2})[日주차\.,>\)\] \/\\""]*(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)[-\/\[""']?(\s*\d{4})[-–−_=\s:‐\.‑\/年년—]+(\d{1,2})[-–−_=\s:‐\.‑\/月월—]+(\d{1,2})[日주차\.,>\)\] \/\\""]*(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)[-\/\[""']?(\s*\d{4})[-–−_=\s:‐\.‑\/年년—]+(\d{1,2})[-–−_=\s:‐\.‑\/月월—]+(\d{1,2})[日주차\.,>\)\] \/\\""]*(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)[-\/\[""']?(\d{4})[-–−_=\s:‐\.‑\/年년—]+(\d{1,2})[-–−_=\s:‐\.‑\/月월—]+(\d{1,2})[日주차\.,>\)\] \/\\""]*(\s*[\|}<])", "{{$1$2$3date$4$5-$6-$7$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*)[-\/\[""']?(\s*\d{4})[-–−_=\s:‐\.‑\/年년—]+(\d{1,2})[-–−_=\s:‐\.‑\/月월—]+(\d{1,2})[日주차\.,>\)\] \/\\""]*(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]ite gnis\s*\|\s*\d+\s*\|\s*[\w\s]+\s*\|\s*\d{4})[-–−_=\s:‐\.‑\/—]+(\d{1,2})[-–−_=\s:‐\.‑\/—]+(\d{1,2})[\.,>\) \/\\]?(\s*[\|}<])", "{{$1-$2-$3$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Ohio road map)([^}]+)(\s*\|\s*access-?date\s*=\s*)[-\/\[""']?(\s*\d{4})[-–−_=\s:‐\.‑\/年—]+(\d{1,2})[-–−_=\s:‐\.‑\/月—]+(\d{1,2})[日\.,>\)\] \/\\""]?(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
//remove extra zero from MM and/or DD (only when there are two zeroes)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4})[-–=\s]+0(0\d)[-–=\s]+(\d{2}\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4})[-–=\s]+(\d{2})[-–=\s]+0(0\d\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4})[-–=\s]+0(0\d)[-–=\s]+0(0\d\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-–=\s]+0(0\d)[-–=\s]+(\d{2}\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-–=\s]+(\d{2})[-–=\s]+0(0\d\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-–=\s]+0(0\d)[-–=\s]+0(0\d\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4})[-–=\s]+0(0\d)[-–=\s]+(\d{2}\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4})[-–=\s]+(\d{2})[-–=\s]+0(0\d\s*[\|}<])", "{{$1$2$3-$4-$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4})[-–=\s]+0(0\d)[-–=\s]+0(0\d\s*[\|}<])", "{{$1$2$3-$4-$5");
//change year to date
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Fall|Autumn|Winter)),?\s*(\d{4}),?(\s*[\|}<])", "{{$1$2$3date$4 $5$6");
//convert yyyy-dd-mm to yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*GRIN)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*internetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{4})[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s](0?\d|1[0-2])(\s*[\|}<])", "{{$1$2$3-$5-$4$6");
//convert dd-mm-yyyy to yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})\.?(\s*[\|}<])", "{{$1$2$3date$4$7-$6-$5$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Australian Dictionary of Biography)([^}]+)(\s*\|\s*access-?date\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+''([01]\d)''(\s*[\|}<])", "{{$1$2${3}20$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*datum\s*=\s*)(1[3-9]|2\d|3[01])[-–\/\.=\s]+(0?\d|1[0-2])[-–\/\.=\s]+(\d{4})(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
//convert mm-dd-yyyy to yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?[\.,\s]*(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3date$4$7-$5-$6$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](1[34])(\s*[\|}<])", "{{$1$2${3}20$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](1[34])(\s*[\|}<])", "{{$1$2${3}20$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?[\.,\s]*(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](1[34])(\s*[\|}<])", "{{$1$2$3date${4}20$7-$5-$6$8");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](1[34])(\s*[\|}<])", "{{$1$2${3}20$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*College Athlete Recruit End)([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*NCES)([^}]+)(\s*\|\s*access_date\s*=\s*)(0?\d|1[0-2])[-–\/\.=\s](1[3-9]|2\d|3[01])[-–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
//convert mm/dd/yy to yyyy-mm-dd (when yy is in the 1940-90s)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(0?\d|1[0-2])[-\/\.=\s](1[3-9]|2\d|3[01])[-\/\.=\s]([4-9]\d)(\s*[\|}<])", "{{$1$2$3date${4}19$7-$5-$6$8");
//convert xx-xx-yyyy to yyyy-xx-xx
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(0?\d|1[0-2])[\-\-\–\/\.=\s]\4[\-\-\–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$5-$4-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?\d|1[0-2])[\-\-\–\/\.=\s]\4[\-\-\–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3$5-$4-$4$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(0?\d|1[0-2])[\-\-\–\/\.=\s]\5[\-\-\–\/\.=\s](\d{4})(\s*[\|}<])", "{{$1$2$3date$4$6-$5-$5$7");
//add missing zero to month portion of yyyy-mm-dd only when month portion is 3-9
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]ite gnis\s*\|\s*\d+\s*\|\s*[\w\s,]+\s*\|\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s](\d{2}\s*[\|}<])", "{{$1-0$2-$3");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*College Athlete Recruit End)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Find a Grave)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*(?:Jahr|Zugriff)\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*TxDOT)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})-([3-9]-\d{2}\s*[\|}<])", "{{$1$2$3-0$4");
//add missing zero to day portion of yyyy-mm-dd only when day portion is 4-9
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*datum\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*(?:Jahr|Zugriff)\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Schaff-Herzog)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*TxDOT)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4}-\d{2})-([4-9]\s*[\|}<])", "{{$1$2$3-0$4");
//add missing zero to month & day portions of yyyy-mm-dd only when month portion is 3-9 & day portion is 4-9
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]ite gnis\s*\|\s*\d+\s*\|\s*[\w\s,]+\s*\|\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1-0$2-0$3");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*(?:Jahr|Zugriff)\s*=\s*\d{4})[-\/\.=\s]([3-9])[-\/\.=\s]([4-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
//remove prefix
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:access)?date\s*=\s*)(?:on|-)\s*:?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(?:the\s*)?(\d{1,2})(?:st|nd|rd|th)?,?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:access)?date\s*=\s*)(?:on|<)\s*:?\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:access)?date\s*=\s*)(?:on|<)\s*:?\s*(\d{4}-\d{2}-\d{2})(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Australian Dictionary of Biography)([^}]+)(\s*\|\s*access-?date\s*=\s*)on\s*:?\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*)(?:on|<)\s*:?\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*)on\s*:?\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*IUCN)([^}]+)(\s*\|\s*downloaded\s*=\s*)on\s*:?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//remove by XXXX from archive-?date
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(January|February|March|April|May|June|July|August|September|October|November|December)\s*(\d{1,2},)\s*(\d{4}),?\s*by\s*''\[\[\w+\]\]''(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2})\s*(January|February|March|April|May|June|July|August|September|October|November|December)\s*(\d{4})\s*(?:\(archive-?d )?by\s*\w+\)?(\s*[\|}<])", "{{$1$2$3 $4 $5$6");
//remove period from abbreviated month (with day before)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2})\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{1,2})\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
//remove period from abbreviated month (with day after)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*air-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*lay-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3date$4$5 $6, $7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Find a Grave)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Find a Grave)([^}]+)(\s*\|\s*date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.\s*(\d{1,2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//remove period/hyphen from abbreviated month (no day)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?:\.,?\s*|-)(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?:\.,?\s*|-)(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?:\.,?\s*|-)(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*lay-?date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?:\.,?\s*|-)(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5");
//add missing comma
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*['`]?(\d{1,2})\.?\s*(?:of |['`])?(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*NCES)([^}]+)(\s*\|\s*access_date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*['`]?(\d{1,2})\s*(?:of |['`])?(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//fix spaces before & after comma
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*['`]?(\d{1,2})\s*,\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*['`]?(\d{1,2})\s,\s*(\d{4})\.?(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
//remove trailing punctuation
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*\d{1,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{1,2}),?\s*(\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)[,\.]?\s*(\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{1,2}),?\s*(\d{4})[a-z](\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Australian Dictionary of Biography)([^}]+)(\s*\|\s*(?:archive-?|access-?|publication-?)?date\s*=\s*\d{1,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Find a Grave)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{1,2}),?\s*(\d{4})\s*(?:[,\.<\)\]&='""\/:-]| )+(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN)([^}]+)(\s*\|\s*(?:access-?date|downloaded)\s*=\s*\d{1,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[,\.]?\s*(\d{4})\s*(?:[,\.<\)\]=\/:-]| )(\s*[\|}<])", "{{$1$2$3$4 $5$6");
//remove excess punctuation
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)[\(]?(\d{4})(?:\s*[,\.\):;'=年]| год| )*(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)[\(]?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)[,\.-]?\s*(\d{4})(?:\s*[,\.\):;']| год| )?(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN)([^}]+)(\s*\|\s*year\s*=\s*)[\(]?(\d{4})(?:\s*[,\.\):;']| )?(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Literatur)([^}]+)(\s*\|\s*Jahr\s*=\s*)[\(']*(\d{4})(?:\s*[,\.\):;']| )*(\s*[\|}<])", "{{$1$2$3$4$5");
//remove invalid values (archive-?url requires archive-?date)
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(?:\s*\|\s*(?:(?:access)?date|year)\s*=\s*[Uu]nknown\s*)([\|}<])", "{{$1$2$3");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)\|date=(?:NaN undefined NaN|Invalid date)\s*([\|}<])", "{{$1$2$3");
//remove copyright symbol
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)(?:[©℗]|Copyright(?:\s*©)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4");
//remove duplicate comma
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),,\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//remove punctuation from dd mmm yyyy
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*air-?date\s*=\s*\d{1,2})[-–_\.,\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{1,2})[-–_\.,\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})[-–_\.,\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|publication-)?date\s*=\s*\d{1,2})[-–_\.,º\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*\d{1,2})[-–_\.,\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3date$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})[-–_\.,\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*\d{1,2})[-–_\.,\/=\s]*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-–_\.,\/=\s]*(\d{4}\s*[\|}<])", "{{$1$2$3 $4 $5");
//remove punctuation from mmm dd yyyy
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-\.\/,;]*\s*(\d{1,2}),?[-\.\/]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)-?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-\.\/,;]*\s*(\d{1,2}),?[-\.\/]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-\.\/,;]*\s*(\d{1,2}),?[-\.\/]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*Ohio road map)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-\.\/,;]*\s*(\d{1,2}),?[-\.\/]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*),?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-\.\/,;]*\s*(\d{1,2}),?[-\.\/]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*laydate\s*=\s*),?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[-\.\/,;]*\s*(\d{1,2}),?[-\.\/]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
//remove leading zero
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*air-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*0(\d–\d{2}),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Certification Table Entry)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*College Athlete Recruit End)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*(?:Find a Grave|FAG))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*(?:Find a Grave|FAG))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*(?:Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN(?:\d{4})?)([^}]+)(\s*\|\s*(?:access-?date|downloaded)\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*NCES)([^}]+)(\s*\|\s*access_date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*0(\d),?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5, $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*air-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:entry|lay)?date\s*=\s*)0(\d(?:–\d{1,2})?)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)0(\d(?:–\d{1,2})?)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*(?:Bing|Google|Yahoo) maps)([^}]+)(\s*\|\s*access-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*BoM Aust stats)([^}]+)(\s*\|\s*access-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*Census 20\d{2} AUS)([^}]+)(\s*\|\s*access-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*datum\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Ii]nternetquelle)([^}]+)(\s*\|\s*zugriff\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*IUCN(?:\d{4})?)([^}]+)(\s*\|\s*(?:access-?date|downloaded)\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*NHLE)([^}]+)(\s*\|\s*access-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*soccerbase season)([^}]+)(\s*\|\s*access-?date\s*=\s*)0(\d)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4 $5 $6");
//change letter o to zero
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|entry|publication-?)?date\s*=\s*[1-3])[Oo]\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}\s*[\|}<])", "{{$1$2${3}0 $4 $5");
//convert Sept to Sep in range
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug)\.?[-–](Sep)t\.?\s*(\d{4}\s*[\|}<])", "{{$1$2$3$4–$5 $6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*Sep)t\.?[-–](Oct|Nov|Dec)\.?\s*(\d{4}\s*[\|}<])", "{{$1$2$3–$4 $5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{1,2})\s*Sept\.?\s*[-–]\s*(\d{1,2})\s*(Oct|Nov|Dec)\.?\s*(\d{4}\s*[\|}<])", "{{$1$2$3 Sep – $4 $5 $6");
//fix circa
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)'*”?(?:circa|ca?|approx)\.?'*\s*(\d{4}s?)\.?”?(\s*[\|}<])", "{{$1$2$3c. $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*){{(?:circa|c\.)\|(\d{4})}}(\s*[\|}<])", "{{$1$2$3c. $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*){{circa}}\s*(\d{4})(\s*[\|}<])", "{{$1$2$3c. $4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-?)?date|year)\s*=\s*)\[?(\d{4})\?\]?(\s*[\|}<])", "{{$1$2$3c. $4$5");
//add origyear
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*\d{4})\s*[\[\(](?:first published|reprint from) (\d{4})[\]\)](\s*[\|}<])", "{{$1$2$3 |origyear=$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*19\d{2})\s*[\[\(](18\d{2})[\]\)](\s*[\|}<])", "{{$1$2$3 |origyear=$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*199\d)\s*[\[\(](19[0-8]\d)[\]\)](\s*[\|}<])", "{{$1$2$3 |origyear=$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*20[01]\d)\s*[\[\(](19\d{2})[\]\)](\s*[\|}<])", "{{$1$2$3 |origyear=$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*\d{4}),?\s*orig\.\s*(\d{4})(\s*[\|}<])", "{{$1$2$3 |origyear=$4$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(190\d)(?:[\],;\/]|\s*and)\s*(191\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[01]\d)(?:[\],;\/]|\s*and)\s*(192\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-2]\d)(?:[\],;\/]|\s*and)\s*(193\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-3]\d)(?:[\],;\/]|\s*and)\s*(194\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-4]\d)(?:[\],;\/]|\s*and)\s*(195\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-5]\d)(?:[\],;\/]|\s*and)\s*(196\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-6]\d)(?:[\],;\/]|\s*and)\s*(197\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-7]\d)(?:[\],;\/]|\s*and)\s*(198\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19[0-8]\d)(?:[\],;\/]|\s*and)\s*(199\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(19\d{2})(?:[\],;\/]|\s*and)\s*(20[01]\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(19\d{2})\s*\((20[01]\d)\)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)\[?(200\d)(?:[\],;\/]|\s*and)\s*(201\d)(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{4})[,;]?\s*\(?(?:reprint(?:ed)?|rev\.|revised|reissued?|updated)\s*(\d{4})\)?(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[,;]?\s*\(?(?:reprint(?:ed)?|rev\.|revised|reissued?|updated)\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})\)?(\s*[\|}<])", "{{$1$2$3origyear$4$5 $6$3date$4$7 $8$9");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[,;]?\s*\(?(?:reprint(?:ed)?|rev\.|revised|reissued?|updated)\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})\)?(\s*[\|}<])", "{{$1$2$3origyear$4$5 $6 $7$3date$4$8 $9 $10$11");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{4})[,;]?\s*(\d{4})\s*reprint(\s*[\|}<])", "{{$1$2$3origyear$4$5$3year$4$6$7");
//remove double year
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[,-]?\s*\5(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[,-]?\s*\5(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[,-]?\s*\5(\s*[\|}<])", "{{$1$2$3$4 $5$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})[,-]?\s*\6(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})[,-]?\s*\6(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})[,-]?\s*\6(\s*[\|}<])", "{{$1$2$3$4 $5, $6$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(\d{4})-\4-(\d{2})-(\d{2}\s*[\|}<])", "{{$1$2$3$4-$5-$6");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access|publication-?)?date\s*=\s*)(\d{4})-(\d{2})-(\d{2})\s+\4(\s*[\|}<])", "{{$1$2$3$4-$5-$6$7");
//add edition
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-)?date|year)\s*=\s*\d{4})\s*[,-—]?\s*[\(\[]?(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised|Electronic)\.?\s*(?:ed(?:n?\.|ition)?)?[\)\]]?(\s*[\|}<])", "{{$1$2$3|edition=$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:(?:publication-)?date|year)\s*=\s*)\(?(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised|Electronic)\.?\s*(?:ed(?:n?\.|ition)?)\)?,?\s*\(?(\d{4})\)?(\s*[\|}<])", "{{$1$2$3$5|edition=$4$6");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised|Electronic)\.?\s*(?:ed(?:\.|ition)?),?\s*\(?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4})\)?,?(\s*[\|}<])", "{{$1$2$3date$4$6 $7|edition=$5$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised|Electronic)\.?\s*(?:ed(?:\.|ition)?),?\s*\(?(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4})\)?,?(\s*[\|}<])", "{{$1$2$3date$4$6 $7 $8|edition=$5$9");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised|Electronic)\.?\s*(?:ed(?:\.|ition)?),?\s*\(?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2}),?\s*(\d{4})\)?,?(\s*[\|}<])", "{{$1$2$3date$4$6 $7, $8|edition=$5$9");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)?,?\s*(\d{4})\s*[,–—]?\s*\(?(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised)\.?\s*(?:ed(?:\.|ition)?)\)?(\s*[\|}<])", "{{$1$2$3date$4$5 $6|edition=$7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{2}),?\s*(\d{4})\s*[,–—]?\s*\(?(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised)\.?\s*(?:ed(?:\.|ition)?)\)?(\s*[\|}<])", "{{$1$2$3date$4$5 $6, $7|edition=$8$9");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?),?\s*(\d{4})\s*[,–-]*\s*\(?(\d+(?:st|nd|rd|th)|First|Second|Third|Fourth|Fifth|Facsimile|Hardcover|New|Paperback|Reissue|Reprint|Revised)\.?\s*(?:ed(?:\.|ition)?)\)?(\s*[\|}<])", "{{$1$2$3date$4$5 $6 $7|edition=$8$9");
//add issue
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)Issue\s*\#?(\d+)[,;-]?\s*(\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)\s*(\d{4})(\s*[\|}<])", "{{$1$2$3date$4$6$7 $8|issue=$5$9");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)Issue\s*\#?(\d+)[,;-]?\s*(\d{4})(\s*[\|}<])", "{{$1$2$3issue$4$5|year$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(\d{0,2}(?:\s*-\s*\d{1,2})?\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)\s*(\d{4})\s*[,;–]?\s*\(?Issue\s*\#?(\d+)\)?(\s*[\|}<])", "{{$1$2$3date$4$5$6 $7|issue=$8$9");
//add volume
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)Vol(?:ume|\.)?\s*(\d+),?\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})(\s*[\|}<])", "{{$1$2$3$5 $6|volume=$4$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)Vol(?:ume|\.)?\s*([CXLVI]+),\s*(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})(\s*[\|}<])", "{{$1$2$3$5 $6 $7|volume=$4$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4}),?\s*Vol(?:ume|\.)\s*(\d+)(\s*[\|}<])", "{{$1$2$3$4 $5|volume=$6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*\d{4}),?\s*Vol(?:ume|\.)?\s*(\d+\s*[\|}<])", "{{$1$2$3 |volume=$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)year(\s*=\s*)(\d\.?)\s*Auflage\s*(\d{4}\s*[\|}<])", "{{$1$2$3edition$4$5$3year$4$6");
//add volume & issue
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:year|date)(\s*=\s*)Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|Number|No\.?)\s*(\d+)\s*[–,;\/\.]?\s*\(?(\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter),?\s*(\d{4})\)?(\s*[\|}<])", "{{$1$2$3volume$4$5 |issue$4$6 |date$4$7$8 $9$10");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:year|date)(\s*=\s*)Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|Number|No\.?)\s*(\d+)\s*[–,;\/\.\s]*\(?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter),?\s*(\d{1,2}(?:–\d{1,2})?),?\s*(\d{4})\)?(\s*[\|}<])", "{{$1$2$3volume$4$5 |issue$4$6 |date$4$7 $8, $9$10");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:year|date)(\s*=\s*)Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|Number|No\.?)\s*(\d+)(\s*[\|}<])", "{{$1$2$3volume$4$5 |issue$4$6$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(year|date)(\s*=\s*)Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|Number|No\.?)\s*(\d+)\s*[–,;\/\.]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3volume$5$6 |issue$5$7 |$4$5$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter),?\s*(\d{4})[\.,:;]?\s*[-–]?\s*\(?V(?:ol)?(?:ume|\.)?\s*(\d+|[CXLVI]+)[,;]?\s*(?:Issue|No\.|Number)\s*(\d+)[;\)]?(\s*[\|}<])", "{{$1$2$3$4 $5 |volume=$6 |issue=$7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)\s*(\d{1,2}),?\s*(\d{4})[\.,:]?\s*[-–]?\s*\(?Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|No\.|Number)\s*(\d+)\)?(\s*[\|}<])", "{{$1$2$3$4 $5, $6 |volume=$7 |issue=$8$9");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(\d{4}(?:-\d{2}-\d{2})?)[\.,:]?\s*-?\s*\(?Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|No\.?|Number)\s*(\d+)\)?(\s*[\|}<])", "{{$1$2$3$4 |volume=$5 |issue=$6$7");
//add volume & page
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(year|date)(\s*=\s*)Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*p(?:age|\.)\s*(\d+)[,;\/\.]?\s*(\d{4}\s*[\|}<])", "{{$1$2$3volume$5$6$3page$5$7$3$4$5$8");
//add volume, issue & page
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:year|date)(\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?|Spring|Summer|Autumn|Fall|Winter)\s*(\d{4})[\.,:]?\s*[-–]?\s*\(?Vol(?:ume|\.)?\s*(\d+|[CXLVI]+),?\s*(?:Issue|No\.|Number)\s*(\d+)\:?\s*(?:Page|p\.)\s*(\d+)\)?(\s*[\|}<])", "{{$1$2$3date$4$5 $6 |volume=$7 |issue=$8 |page=$9$10");
//change date to volume/issue
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)date(\s*=\s*)Vol\.\s*(\d+),?(\s*)Issue(\s*\d+\s*[\|}<])", "{{$1$2$3volume$4$5$6|issue=$7");
//add subscription/registration
//ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2},?\s*)?(\d{4})\s*\((subscription|registration) (?:required|needed)\)(\s*[\|}<])", "{{$1$2$3$4 $5, $6|$7=yes$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2},?\s*)?(\d{4})\s*{{(subscription|registration)\s*(?:required|needed)?}}(\s*[\|}<])", "{{$1$2$3$4 $5$6|$7=yes$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2},?)\s*(\d{4})\s*\(requires (subscription|registration)\)(\s*[\|}<])", "{{$1$2$3$4 $5 $6|$7=yes$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{4}-\d{2}-\d{2}\s*){{(subscription|registration)\s*(?:required|needed)?}}(\s*[\|}<])", "{{$1$2$3|$4=yes$5");
//add language
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2},?\s*)?(\d{4}\s*)\((?:in\s*)?(German|Polish|Portuguese)\)(\s*[\|}<])", "{{$1$2$3$4 $5$6|language=$7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2},?\s*)?(\d{4}\s*){{(\w{2}) icon}}(\s*[\|}<])", "{{$1$2$3$4 $5$6|language=$7$8");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{4}-\d{2}-\d{2})\s*\((German|Polish|Portuguese)\)(\s*[\|}<])", "{{$1$2$3|language=$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{4}-\d{2}-\d{2})\s*{{(\w{2}) icon}}(\s*[\|}<])", "{{$1$2$3|language=$4$5");
//add page
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*\d{4})[,;]?\s*p(?:age|g?\.)\s*(\d+)(\s*[\|}<])", "{{$1$2$3|page=$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[\.,]?\s*(\d{1,2},?\s*)?(\d{4}),?\s*p(?:age|g?\.)?\s*(\d+\s*[\|}<])", "{{$1$2$3$4 $5$6|page=$7");
//add pages
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})[,;\.]?\s*p(?:a?ge?s|p\.?)(?: |\s*)([\d-–]+)(\s*[\|}<])", "{{$1$2$3$4 $5|pages=$6$7");
//removed bold
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*year\s*=\s*)'''(\d{4})'''(\s*[\|}<])", "{{$1$2$3$4$5");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*)'''(\d{1,2})\s*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{4})'''(\s*[\|}<])", "{{$1$2$3$4 $5 $6$7");
//moved dead link
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{0,2}\s*)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s*(\d{1,2},?\s*)?(\d{4})\s*({{dead(?: link)\|date=(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{4}}})\s*}}", "{{$1$2$3$4 $5$6}}$7");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*\d{4}-\d{2}-\d{2})\s*({{dead(?: link)?\|date=(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{4}}})\s*}}", "{{$1$2$3}}$4");
//move inconsistent citations
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*year\s*=\s*\d{4})\s*({{inconsistent citations}})\s*}}", "{{$1$2$3}}$4");
//fixed nd and n.d.
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)(?:undated|undefined|unknown|unknown year|N\/?A|no date|none given|not (?:dated|given|listed)|year unknown|Unk\.?|Unk\. date|\?+)(\s*[\|}<])", "{{$1$2$3n.d.$4");;
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)[\(\[]?n\/?\s*d[\)\]]?(\s*[\|}<])", "{{$1$2$3nd$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)[\(\[]?(?:n\.\/?\s*d|n[\.\/]?\s*d\.)[\)\]]?(\s*[\|}<])", "{{$1$2$3n.d.$4");
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:date|year)\s*=\s*)\[\[wikt\:n\.d\.\|n\.d\.\]\](\s*[\|}<])", "{{$1$2$3n.d.$4");
//fixed PAHM
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publisher\s*=\s*)\|\s*date\s*=\s*(Pennsylvania Historical & Museum Commission\s*[\|}<])", "{{$1$2$3$4");
//remove tbd
ArticleText = Regex.Replace(ArticleText, @"(?i){{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*(?:archive-?|access)?date\s*=\s*)tbd(\s*[\|}<])", "{{$1$2$3$4");
//CHANGE AMBIGUOUS DATES IN 2023 BEFORE END OF JANUARY 2023
//convert dd-mm-yyyy to yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s]+(0?[1])[-–\/\.=\s]+(2023)\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s]+(0?[1])[-–\/\.=\s]+(2023)\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*publication-?date\s*=\s*)(0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s]+(0?[1])[-–\/\.=\s]+(2023)\.?(\s*[\|}<])", "{{$1$2$3$6-$5-$4$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s]+(0?[1])[-–\/\.=\s]+(2023)\.?(\s*[\|}<])", "{{$1$2$3date$4$7-$6-$5$8");
//convert mm-dd-yyyy to yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)(0?[1])[-–\/\.=\s](0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s](2023)(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)(0?[1])[-–\/\.=\s](0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s](2023)(\s*[\|}<])", "{{$1$2$3$6-$4-$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?[\.,\s]*(0?[1])[-–\/\.=\s](0?[2-9]|1\d|2\d|3[01])[-–\/\.=\s](2023)(\s*[\|}<])", "{{$1$2$3date$4$7-$5-$6$8");
//convert m-d-yyyy to yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*)([1])[-–\/\.=\s]([2-9])[-–\/\.=\s](2023)(\s*[\|}<])", "{{$1$2$3$6-0$4-0$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*)([1])[-–\/\.=\s]([2-9])[-–\/\.=\s](2023)(\s*[\|}<])", "{{$1$2$3$6-0$4-0$5$7");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*)(?:date|year)(\s*=\s*)(?:Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)?(?:day)?[\.,\s]*([1])[-–\/\.=\s]([2-9])[-–\/\.=\s](2023)(\s*[\|}<])", "{{$1$2$3date$4$7-0$5-0$6$8");
//add missing zero to month portion of yyyy-mm-dd only
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*2023)-([1]-(0[2-9]|1\d|2\d|3[01])\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*2023)-([1]-(0[2-9]|1\d|2\d|3[01])\s*[\|}<])", "{{$1$2$3-0$4");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*2023)-([1]-(0[2-9]|1\d|2\d|3[01])\s*[\|}<])", "{{$1$2$3-0$4");
//add missing zero to month and day portion of yyyy-mm-dd
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*archive-?date\s*=\s*2023)-([1])-([2-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*access-?date\s*=\s*2023)-([1])-([2-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
ArticleText = Regex.Replace(ArticleText, @"{{(\s*[Cc]it(?:e|ation))([^}]+)(\s*\|\s*date\s*=\s*2023)-([1])-([2-9]\s*[\|}<])", "{{$1$2$3-0$4-0$5");
return ArticleText;
}