Kullanıcı:ToprakBot/AWB modülleri/Kombo
Görünüm
(Kullanıcı:ToprakBot/AWB modülleri/ToprakBot sayfasından yönlendirildi)
- Modül kombosu
AutoWikiBrowser tek seferde birden fazla modül kullanmaya müsaade etmediği için Yalın URL, kaynakça, kaynak tarihi ve görünmez karakter modülü birleştirildi. Birleştirilen modüller hakkında daha fazla bilgi almak veya ayrı ayrı kullanmak için sayfalarına bakın.
//AutoWikiBrowser - Modül kombosu - 8 Eylül 2024
//Yazar: ToprakM
string Tercuman(string eskiay) {
switch (eskiay.ToLower()) {
case "january":
return "Ocak";
case "february":
return "Şubat";
case "march":
return "Mart";
case "april":
return "Nisan";
case "may":
return "Mayıs";
case "june":
return "Haziran";
case "july":
return "Temmuz";
case "august":
return "Ağustos";
case "september":
return "Eylül";
case "october":
return "Ekim";
case "november":
return "Kasım";
case "december":
return "Aralık";
default:
return string.Empty;
}
}
public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip) {
Skip = false;
Summary = "";
//Kaynakça
Match kat = Regex.Match(ArticleText, @"\[\[[KkCc]ategor[yi]\s*?:");
Match disbag = Regex.Match(ArticleText, @"==\s*?d[ıiİ][Şşs]\s*ba[Ğğg]lant[İiı]lar\s*?==", RegexOptions.IgnoreCase);
Match taslak = Regex.Match(ArticleText, @"{{(?:.{1,}\-|)[Tt]aslak\s*?}}");
Regex one = new Regex(@"(kaynak[çÇ]a|==\s*?kaynak\s*?==)", RegexOptions.IgnoreCase);
Regex two = new Regex(@"(R|r)eferences", RegexOptions.IgnoreCase);
Regex three = new Regex(@"==\s*(R|r)eferans(lar)\s*==", RegexOptions.IgnoreCase);
Regex four = new Regex(@"{{\s*reflist", RegexOptions.IgnoreCase);
Regex five = new Regex(@"==\s*[Kk]aynaklar\s*==", RegexOptions.IgnoreCase);
Regex six = new Regex(@"\={2,}\s*(?:Kaynakça|Kaynaklar)\s*\={2,}(?:\r\n){1,}\[\[(Kategori|Category)\:\s*", RegexOptions.Singleline);
Regex seven = new Regex(@"\={2,}\s*(?:Kaynakça|Kaynaklar)\s*\={2,}(?:\n)*?\={2,}.*?\={2,}", RegexOptions.Singleline);
Regex eight = new Regex(@"\{\{\s*([Kk]aynakça|[Rr]eflist|[Rr]eferences|[Rr]eference|[Kk]aynak listesi|[Rr]eferanslar|[Rr]efs)\s*(\||\}\})");
Regex nine = new Regex(@"<\s*references\s*(\/|)\s*\>");
if(ArticleText.Contains("<ref")&&(!(eight.Match(ArticleText).Success||nine.Match(ArticleText).Success))) {
if(!(one.Match(ArticleText).Success||two.Match(ArticleText).Success||three.Match(ArticleText).Success||four.Match(ArticleText).Success||five.Match(ArticleText).Success)) {
if(disbag.Success) ArticleText = ArticleText.Insert(disbag.Index, "== Kaynakça ==\n{{kaynakça}}\r\n\n");
else if(taslak.Success) ArticleText = ArticleText.Insert(taslak.Index, "\n== Kaynakça ==\n{{kaynakça}}\r\n\n");
else if(kat.Success) ArticleText = ArticleText.Insert(kat.Index, "== Kaynakça ==\n{{kaynakça}}\r\n\n");
else ArticleText += "\r\n\r\n== Kaynakça ==\n{{kaynakça}}";
ArticleText = ArticleText.Replace("\n\n== Kaynakça ==", "\n== Kaynakça ==");
Summary += "; Kaynakça başlığı ekleniyor";
}
if(six.Match(ArticleText).Success||seven.Match(ArticleText).Success) {
Regex R1 = new Regex(@"\={2,}\s*(?:Kaynakça|Kaynaklar)\s*\={2,}", RegexOptions.IgnoreCase);
ArticleText = R1.Replace(ArticleText, "== Kaynakça ==\r\n{{kaynakça}}");
Summary += "; Kaynakça şablonu ekleniyor";
}
Regex kaydz = new Regex(@"(\S\n{1})(\=\= Kaynakça ==)");
ArticleText = kaydz.Replace(ArticleText, "$1\n$2");
}
//Not listesi
Regex şablon = new Regex(@"{{\s*?(efn|adn|adn\-la|adş)\s*?(\||\})", RegexOptions.IgnoreCase);
Regex notlistesi = new Regex(@"{{\s*?(not\slistesi|notlar|notes|notelist)\s*?(\||\})", RegexOptions.IgnoreCase);
Regex notbaslik = new Regex(@"==\s*(not listesi|notlar|note list|notes|notelist)\s*==", RegexOptions.IgnoreCase);
Regex refgroup = new Regex(@"(\<|{{)\s*?(references|ref|kaynakça)\s*?\|?(group|grup)", RegexOptions.IgnoreCase);
if (şablon.Match(ArticleText).Success) {
if (!notlistesi.Match(ArticleText).Success&&!refgroup.Match(ArticleText).Success&&!notbaslik.Match(ArticleText).Success) {
Match kategori = Regex.Match(ArticleText, @"\[\[\s*?[kc]ategor[iy]\s*?\:", RegexOptions.IgnoreCase);
Match dışbağ = Regex.Match(ArticleText, @"\=\=\s*?Dış\sbağlantılar\s*?\=\=", RegexOptions.IgnoreCase);
Match kaynakça = Regex.Match(ArticleText, @"\=\=\s*?Kaynakça\s*?\=\=", RegexOptions.IgnoreCase);
//Match taslak = Regex.Match(ArticleText, @"{{.*(-|)taslak(\s*|)}}", RegexOptions.IgnoreCase);
if (kaynakça.Success) ArticleText = ArticleText.Insert(kaynakça.Index, "== Not listesi ==\n{{not listesi}}\r\n\n");
else if (dışbağ.Success) ArticleText = ArticleText.Insert(dışbağ.Index, "== Not listesi ==\n{{not listesi}}\r\n\n");
else if (taslak.Success) ArticleText = ArticleText.Insert(taslak.Index, "== Not listesi ==\n{{not listesi}}\r\n\n");
else if (kategori.Success) ArticleText = ArticleText.Insert(kategori.Index, "== Not listesi ==\n{{not listesi}}\r\n\n");
else ArticleText += "\r\n\r\n== Not listesi ==\n{{not listesi}}";
Summary += "; Not listesi ekleniyor";
Regex notdz = new Regex(@"(\S\n{1})(\=\= Not listesi ==)");
ArticleText = notdz.Replace(ArticleText, "$1\n$2");
}
}
//Yalın URL
int bos = 0;
Regex sablonkontrol = new Regex(@"\{\{\s*?(Şablon\:|)\s*?(Yalın(_|\s)URL\'leri(_|\s)temizle|Satır(_|\s)içi(_|\s)yalın(_|\s)URL|kaynakları(_|\s)düzenle|düzenle|çoklu(_|\s)sorun)", RegexOptions.IgnoreCase);
Regex yalinurl = new Regex(@"<ref[^>]*?\>\s*\[?\s*https?:[^>< \|\[\]]+\s*\]?\s*<\s*\/\s*ref", RegexOptions.IgnoreCase);
Regex satirici = new Regex(@"(<ref[^>]*?\>)\s*\[?\s*(https?:[^>< \|\[\]]+)\s*\]?\s*(<\s*\/\s*ref)", RegexOptions.IgnoreCase);
foreach(Match match in yalinurl.Matches(ArticleText)) bos++;
if((bos!=0)&&!(sablonkontrol.Match(ArticleText).Success)&&(yalinurl.Match(ArticleText).Success)) {
if(bos>=3) ArticleText = "{{Yalın URL'leri temizle|tarih=" + DateTime.UtcNow.ToString("MMMM yyyy") + "}}\n" + ArticleText;
else ArticleText = satirici.Replace(ArticleText, "$1$2 {{Satır içi yalın URL|tarih=" + DateTime.UtcNow.ToString("MMMM yyyy") + "}}$3");
Summary += "; yalın URL bakım şablonu eklendi";
}
//Görünmez karakterler
List<string> karakterler = new List<string>();
List<string> gereksiz = new List<string>();
Regex arapça = new Regex(@"[\u0621-\u064A]"); //Arapça dedektörü
Regex ibranice = new Regex(@"[\u0590-\u05FF]"); //İbranice dedektörü
//lüzumsuz karakter kaldırıcı
Regex lefttoright = new Regex(@"(\u200E)"); //left-to-rigt
Regex righttoleft = new Regex(@"(\u200F)"); //rigt-to-left
if(!(arapça.Match(ArticleText).Success||ibranice.Match(ArticleText).Success)) {
if(lefttoright.Match(ArticleText).Success) {
ArticleText = lefttoright.Replace(ArticleText, "");
gereksiz.Add("\"[[en:left-to-right mark|left-to-right]]\" (U+200E)");
} else if(righttoleft.Match(ArticleText).Success) {
ArticleText = righttoleft.Replace(ArticleText, "");
gereksiz.Add("\"[[en:right-to-left mark|right-to-left]]\" (U+200F)");
}
}
bool kirilmaz = false;
Regex luzumsuz1 = new Regex(@"\u00a0\r(\n*)");
if(luzumsuz1.Match(ArticleText).Success) { //Satır sonunda kırılmaz boşluk
ArticleText=luzumsuz1.Replace(ArticleText, "$1");
gereksiz.Add("[[Ayrılmaz alan|kırılmaz boşluk]] (U+00A0)");
kirilmaz = true;
}
Regex luzumsuz2 = new Regex(@"\r(\n*)\u00a0");
if(luzumsuz2.Match(ArticleText).Success) { //Satır başında kırılmaz boşluk
ArticleText = luzumsuz2.Replace(ArticleText, "$1");
if(!kirilmaz) {
gereksiz.Add("[[Ayrılmaz alan|kırılmaz boşluk]] (U+00A0)");
kirilmaz = true;
}
}
Regex luzumsuz3 = new Regex(@"(\u00a0(\s)){1,}");
if(luzumsuz3.Match(ArticleText).Success) { //Art arda kırılmaz boşluk-boşluk
ArticleText = luzumsuz3.Replace(ArticleText, "$2");
if(!kirilmaz) {
gereksiz.Add("[[Ayrılmaz alan|kırılmaz boşluk]] (U+00A0)");
kirilmaz = true;
}
}
Regex luzumsuz4 = new Regex(@"(\={2,4})(.*?\u00a0.*?)(\={2,4})");
if(luzumsuz4.Match(ArticleText).Success) { //Başlık içinde kırılmaz boşluk
bool bittimi = false;
while(bittimi==false) {
var cikar = luzumsuz4.Match(ArticleText);
if(luzumsuz4.Match(ArticleText).Success) { //İlki kırılmaz boşluk
var baslik = cikar.Groups[2].Value;
baslik = baslik.Replace(" ", " ");
ArticleText = luzumsuz4.Replace(ArticleText, "$1"+baslik+"$3", 1);
} else bittimi = true;
}
if(!kirilmaz) {
gereksiz.Add("[[Ayrılmaz alan|kırılmaz boşluk]] (U+00A0)");
}
}
Regex luzumsuz5 = new Regex(@"(\s*)\u200B{1,}");
if(luzumsuz5.Match(ArticleText).Success) { //Gereksiz zero-width space
ArticleText = luzumsuz5.Replace(ArticleText, "$1");
gereksiz.Add("[[en:Zero-width space|Zero-width space]] (U+200B)");
}
Regex luzumsuz6 = new Regex(@"(\s*)\uFEFF{1,}");
if(luzumsuz6.Match(ArticleText).Success) { //Gereksiz byte order mark
ArticleText = luzumsuz6.Replace(ArticleText, "$1");
gereksiz.Add("[[en:Byte order mark|Byte order mark]] (U+FEFF)");
}
Regex luzumsuz7 = new Regex(@"\u0307");
if(luzumsuz7.Match(ArticleText).Success) { //combining dot above
if(!(ArticleTitle=="Ayırıcı im"||ArticleTitle=="2021 Filistin-İsrail çatışmaları"||ArticleTitle=="Denesulinece"||ArticleTitle=="Hamilton mekaniği")) { //İstisna maddeler
Regex luzumsuz7a = new Regex(@"ı\u0307");
Regex luzumsuz7b = new Regex(@"i\u0307");
if(luzumsuz7a.Match(ArticleText).Success) {
ArticleText = luzumsuz7a.Replace(ArticleText, "i");
gereksiz.Add("[[:en:Dot (diacritic)|Combining Dot Above]] (U+0307)");
} else if(luzumsuz7b.Match(ArticleText).Success) {
ArticleText = luzumsuz7b.Replace(ArticleText, "i");
gereksiz.Add("[[:en:Dot (diacritic)|Combining Dot Above]] (U+0307)");
}
}
}
//karakter gösterici
Regex bulucu1 = new Regex(@"(\u00a0)");
if(bulucu1.Match(ArticleText).Success) { //Kırılmaz boşluk
ArticleText = bulucu1.Replace(ArticleText, " ");
karakterler.Add("[[Ayrılmaz alan|kırılmaz boşluk]] (U+00A0)");
}
Regex bulucu2 = new Regex(@"(\u200B)");
if(bulucu2.Match(ArticleText).Success) { //Zero-width space
ArticleText = bulucu2.Replace(ArticleText, "​");
karakterler.Add("[[en:Zero-width space|Zero-width space]] (U+200B)");
}
Regex bulucu3 = new Regex(@"(\u2009)");
if(bulucu3.Match(ArticleText).Success) { //Thin space
ArticleText = bulucu3.Replace(ArticleText, " ");
karakterler.Add("[[en:Thin space|Thin space]] (U+2009)");
}
Regex bulucu4 = new Regex(@"(\u200c)");
if(bulucu4.Match(ArticleText).Success) { //Zero-width non-joiner
ArticleText = bulucu4.Replace(ArticleText, "‌");
karakterler.Add("[[en:Zero-width non-joiner|Zero-width non-joiner]] (U+200C)");
}
Regex bulucu5 = new Regex(@"(\u3000)");
if(bulucu5.Match(ArticleText).Success) { //Ideographic space
ArticleText = bulucu5.Replace(ArticleText, " ");
karakterler.Add("[[en:Whitespace_character#Unicode|Ideographic space]] (U+3000)");
}
Regex bulucu6 = new Regex(@"(\u2002)");
if(bulucu6.Match(ArticleText).Success) { //En space
ArticleText = bulucu6.Replace(ArticleText, " ");
karakterler.Add("[[en:En (typography)|En space]] (U+2002)");
}
Regex bulucu7 = new Regex(@"(\u200A)");
if(bulucu7.Match(ArticleText).Success) { //Hair space
ArticleText = bulucu7.Replace(ArticleText, " ");
karakterler.Add("[[en:Whitespace_character#Hair_spaces_around_dashes|Hair space]] (U+200A)");
}
Regex bulucu8 = new Regex(@"(\uFEFF)");
if(bulucu8.Match(ArticleText).Success) { //Byte order mark
ArticleText = bulucu8.Replace(ArticleText, "");
karakterler.Add("[[en:Byte order mark|Byte order mark]] (U+FEFF)");
}
Regex bulucu9 = new Regex(@"(\u2008)");
if(bulucu9.Match(ArticleText).Success) { //Punctuation space
ArticleText = bulucu9.Replace(ArticleText, " ");
karakterler.Add("[[wikt:en:punctuation_space|Punctuation space]] (U+2008)");
}
Regex bulucu10 = new Regex(@"(\u200D)");
if(bulucu10.Match(ArticleText).Success) { //Zero-width joiner
ArticleText = bulucu10.Replace(ArticleText, "‍");
karakterler.Add("[[en:Zero-width joiner|Zero-width joiner]] (U+200D)");
}
Regex bulucu11 = new Regex(@"(\u202F)");
if(bulucu11.Match(ArticleText).Success) { //Narrow no-break space
ArticleText = bulucu11.Replace(ArticleText, " ");
karakterler.Add("[[en:Non-breaking_space#Width_variation|Narrow no-break space]] (U+202F)");
}
Regex bulucu12 = new Regex(@"(\u00AD)");
if(bulucu12.Match(ArticleText).Success) { //Soft hyphen
ArticleText = bulucu12.Replace(ArticleText, "­");
karakterler.Add("[[en:Soft hyphen|Soft hyphen]] (U+00AD)");
}
//değişiklik özeti
string str = string.Empty;
foreach(var item in karakterler) str = str + item + ", ";
string str2 = string.Empty;
foreach(var item2 in gereksiz) str2 = str2 + item2 + ", ";
if(str!="") {
str=str.Remove(str.Length-2);
Summary += "; Görünmez karakterler fark edilebilir kılındı: " + str;
}
if(!(str2=="")) {
str2 = str2.Remove(str2.Length-2);
Summary += "; Gereksiz görünmez karakterler kaldırıldı: " + str2;
}
//Kaynak çevirmeni
//tarih - çeviri
//January 23, 2021
Regex tarihRegex1 = new Regex(@"(\s*?\|\s*?(erişim(\-|\s|)tarihi|tarih|access(\-|\s|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(January|February|March|April|May|June|July|August|September|October|November|December)\s*?(\d{1,2})\s*?(,|)\s*?(\d{4})", RegexOptions.IgnoreCase);
ArticleText = tarihRegex1.Replace(ArticleText, match => {
var ay = match.Groups[7].Value;
ay = Tercuman(ay);
return match.Groups[1].Value + match.Groups[8].Value + " " + ay + " " + match.Groups[10].Value;
});
//23 January 2021
Regex tarihRegex2 = new Regex(@"(\s*?\|\s*?(erişim(\-|\s|)tarihi|tarih|access(\-|\s|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(\d{1,2})\s*?(January|February|March|April|May|June|July|August|September|October|November|December)\s*?(\d{4})\s*?", RegexOptions.IgnoreCase);
ArticleText = tarihRegex2.Replace(ArticleText, match => {
var ay = match.Groups[8].Value;
ay = Tercuman(ay);
return match.Groups[1].Value + match.Groups[7].Value + " " + ay + " " + match.Groups[9].Value;
});
//2021-01-23
Regex tarihRegex3 = new Regex(@"(\s*?\|\s*?(erişim(\-|\s|)tarihi|tarih|access(\-|\s|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(\d{4})\-(\d{1,2})\-(\d{1,2})", RegexOptions.IgnoreCase);
ArticleText = tarihRegex3.Replace(ArticleText, match => {
var ay = match.Groups[8].Value;
string gun = match.Groups[9].Value;
switch (ay) {
case "1":
case "01":
ay = "Ocak";
break;
case "2":
case "02":
ay = "Şubat";
break;
case "3":
case "03":
ay = "Mart";
break;
case "4":
case "04":
ay = "Nisan";
break;
case "5":
case "05":
ay = "Mayıs";
break;
case "6":
case "06":
ay = "Haziran";
break;
case "7":
case "07":
ay = "Temmuz";
break;
case "8":
case "08":
ay = "Ağustos";
break;
case "9":
case "09":
ay = "Eylül";
break;
case "10":
ay = "Ekim";
break;
case "11":
ay = "Kasım";
break;
case "12":
ay = "Aralık";
break;
default:
break;
}
Regex sıfırçıkarıcı = new Regex(@"0(\d)");
gun = sıfırçıkarıcı.Replace(gun, "$1");
return match.Groups[1].Value + gun + " " + ay + " " + match.Groups[7].Value;
});
//tarih - düzelt
//21 Ocak, 2021 ve Ocak, 2021
Regex tarihRegex4 = new Regex(@"(\s*?\|\s*?(erişim(\-|\s|)tarihi|tarih|access(\-|\s|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(\d{1,2}|)\s*?(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*?\,\s*?(\d{4})\s*?", RegexOptions.IgnoreCase);
ArticleText = tarihRegex4.Replace(ArticleText, match => {
return match.Groups[1].Value + match.Groups[7].Value + " " + match.Groups[8].Value + " " + match.Groups[9].Value;
});
//21 Ocak 2021 Pazartesi
Regex tarihRegex5 = new Regex(@"(\s*?\|\s*?(erişim(\-|\s|)tarihi|tarih|access(\-|\s|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(\d{1,2})\s*?(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*?(\d{4})\s*?(Pazartesi|Sal[Iı]|Çarşamba|Perşembe|Cumartes[iİ]|Cuma|Pazar)\s*?", RegexOptions.IgnoreCase);
ArticleText = tarihRegex5.Replace(ArticleText, match => {
return match.Groups[1].Value + match.Groups[7].Value + " " + match.Groups[8].Value + " " + match.Groups[9].Value;
});
//21 ocAk 2021
Regex tarihRegex6 = new Regex(@"(\s*?\|\s*?(erişim(\-|)tarihi|tarih|access(\-|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(\d{1,2})\s*?(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*?(\d{4})", RegexOptions.IgnoreCase);
ArticleText = tarihRegex6.Replace(ArticleText, match => {
return match.Groups[1].Value + match.Groups[7].Value + " " + match.Groups[8].Value.Substring(0, 1).ToUpper() + match.Groups[8].Value.Substring(1).ToLower() + " " + match.Groups[9].Value;
});
//Aralık 2020-Ocak 2021
Regex tarihRegex7 = new Regex(@"(\s*?\|\s*?(erişim(\-|)tarihi|tarih|access(\-|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)((Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*\d{4})\-((Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*\d{4})", RegexOptions.IgnoreCase);
ArticleText = tarihRegex7.Replace(ArticleText, match => {
return match.Groups[1].Value + match.Groups[7].Value + " - " + match.Groups[9].Value;
});
//Ocak 2021
Regex tarihRegex8 = new Regex(@"(\s*?\|\s*?(erişim(\-|)tarihi|tarih|access(\-|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)(\d{4})\s*(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*(\||\}\})", RegexOptions.IgnoreCase);
ArticleText = tarihRegex8.Replace(ArticleText, match => {
return match.Groups[1].Value + match.Groups[8].Value + " " + match.Groups[7].Value + match.Groups[9].Value;
});
Regex tarihRegex9 = new Regex(@"(\s*?\|\s*?(erişim(\-|\s|)tarihi|tarih|access(\-|\s|)date|accessdate|date|archive(\-|)date|arşiv(\-|)tarihi)\s*?\=\s*?)0(\d)\s*(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kas[Iı]m|Aral[Iı]k)\s*(\d{4})", RegexOptions.IgnoreCase);
ArticleText = tarihRegex9.Replace(ArticleText, match => {
return match.Groups[1].Value + match.Groups[7].Value + " " + match.Groups[8].Value + " " + match.Groups[9].Value;
});
//basım
Regex basımçekici = new Regex(@"\|\s*?basım\s*?\=\s*?((\d{1,2})(st|nd|rd|th))\s*?(\||\}\})", RegexOptions.IgnoreCase);
ArticleText = basımçekici.Replace(ArticleText, match => {
string basım = match.Groups[1].Value;
Regex sayı = new Regex(@"(\d{1,2})(st|nd|rd|th)", RegexOptions.IgnoreCase);
basım = sayı.Replace(basım, "$1.");
return "|basım=" + basım + match.Groups[4].Value;
});
return ArticleText;
}