using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string msg= "=?windows-1258?B?UkU6IFRyIDogUGxhbiBkZSBjb250aW51aXTpIGQnYWN0aXZpdOkgZGVz?= =?windows-1258?B?IHNlcnZldXJzIFdlYiBHb1ZveWFnZXN=?=";
var charSetOccurences = new Regex(@"=\?.*?\?[BQ]\?.*?\?=", RegexOptions.IgnoreCase);
MatchCollection matches = charSetOccurences.Matches(msg);
foreach (Match match in matches)
{
string[] encoding = match.Groups[0].Value.Split(new string[]{ "?" }, StringSplitOptions.None);
string charSet = encoding[1];
string encodeType = encoding[2];
string encodedString = encoding[3];
Console.WriteLine("Charset: " + charSet);
Console.WriteLine("Encoding type: " + encodeType);
Console.WriteLine("Encoded String: " + encodedString + "\n");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsgICAKICAgICAgICBzdHJpbmcgbXNnPSAiPT93aW5kb3dzLTEyNTg/Qj9Va1U2SUZSeUlEb2dVR3hoYmlCa1pTQmpiMjUwYVc1MWFYVHBJR1FuWVdOMGFYWnBkT2tnWkdWej89ID0/d2luZG93cy0xMjU4P0I/SUhObGNuWmxkWEp6SUZkbFlpQkhiMVp2ZVdGblpYTj0/PSI7CiAgICAgICAgdmFyIGNoYXJTZXRPY2N1cmVuY2VzID0gbmV3IFJlZ2V4KEAiPVw/Lio/XD9bQlFdXD8uKj9cPz0iLCBSZWdleE9wdGlvbnMuSWdub3JlQ2FzZSk7CiAgICAgICAgTWF0Y2hDb2xsZWN0aW9uIG1hdGNoZXMgPSBjaGFyU2V0T2NjdXJlbmNlcy5NYXRjaGVzKG1zZyk7CiAgICAgICAgZm9yZWFjaCAoTWF0Y2ggbWF0Y2ggaW4gbWF0Y2hlcykKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZ1tdIGVuY29kaW5nID0gbWF0Y2guR3JvdXBzWzBdLlZhbHVlLlNwbGl0KG5ldyBzdHJpbmdbXXsgIj8iIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5Ob25lKTsKICAgICAgICAgICAgc3RyaW5nIGNoYXJTZXQgPSBlbmNvZGluZ1sxXTsKICAgICAgICAgICAgc3RyaW5nIGVuY29kZVR5cGUgPSBlbmNvZGluZ1syXTsKICAgICAgICAgICAgc3RyaW5nIGVuY29kZWRTdHJpbmcgPSBlbmNvZGluZ1szXTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkNoYXJzZXQ6ICIgKyBjaGFyU2V0KTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkVuY29kaW5nIHR5cGU6ICIgKyBlbmNvZGVUeXBlKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkVuY29kZWQgU3RyaW5nOiAiICsgZW5jb2RlZFN0cmluZyArICJcbiIpOwogICAgICAgIH0KICAgIH0KfQ==