using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
var fileNames = new Dictionary<string, string>
{">myFile.txt", "myFile.txt"},
{"<myFile.txt", "myFile.txt"},
{@"PZTG-8013F3-2008A PT Asuransi Tri Pakarta (INDONESIA) - PT Gudang Garam Tbk (includin - Quota Share – IDR 64,219,783M - en-US - Reserve Change Only, PT Gudang Garam (Tuban), 6-Nov-2020, CR10389.pdf",
@"PZTG-8013F3-2008A PT Asuransi Tri Pakarta (INDONESIA) - PT Gudang Garam Tbk (includin - Quota Share IDR 64,219,783M - en-US - Reserve Change Only, PT Gudang Garam (Tuban), 6-Nov-2020, CR10389.pdf"},
{@"PZTG-8013F3-2008A PT Asuransi Tri Pakarta (INDONESIA) - PT Gudang Garam Tbk (includin - Quota Share – IDR 64,219,783M - en-US - Reserve Change Only, PT G-Protected Data-, 6-Nov-2020, CR10389",
@"PZTG-8013F3-2008A PT Asuransi Tri Pakarta (INDONESIA) - PT Gudang Garam Tbk (includin - Quota Share IDR 64,219,783M - en-US - Reserve Change Only, PT G-Protected Data-, 6-Nov-2020, CR10389"}
foreach (var fileName in fileNames)
var cleanedFileName = CleanFileName(fileName.Key);
if (string.Equals(cleanedFileName, fileName.Value))
Console.WriteLine("PASS - '{0}' => '{1}'.", fileName.Key, fileName.Value);
Console.WriteLine("FAILED - Expected '{0}' but received '{1}'.", fileName.Value, cleanedFileName);
public static string CleanFileName(string fileName)
return Regex.Replace(fileName, @"[^a-zA-Z0-9_.,\-\s]+", "");