using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string request= @"TST00009 DCA1S211E RH/07FEB F N LD 13FEB13 OD SANSAN SI
T-E
FXP/R,U
3.MACDORMAN/SAM CORBIN (CHD)
1 SAN BA 272 N 24JUN 825P OK NHXUQCNJ CH 24JUN24JUN 1PC
2 O LHR BA 273 N 07AUG 325P OK NHXUQCNJ CH 07AUG07AUG 1PC
SAN
FARE U USD 492.00
TX001 X USD 458.00YQAC TX002 X USD 5.50YCAE TX003 X USD 17.20USAP
TX004 X USD 17.20USAS TX005 X USD 5.00XACO TX006 X USD 7.00XYCR
TX007 X USD 2.50AYSE TX008 X USD 105.61GBAD TX009 X USD 62.66UBAS
TX010 X USD 4.50XF
TOTAL USD 1177.17
GRAND TOTAL USD 1177.17
SAN BA LON M/BT NHXUQCNJ/CH BA SAN M/BT NHXUQCNJ/CH END
ROE1.000000 XF SAN4.5
BT1195364*BA *FM0.00
40.FE BA ONLY/NONREF/NONEND SEE GGAIRBAGUSA -BG:BA
45.FM *M*0.00A
46.FP CHECK";
/*
string pattern = @"FXP/R,U\s+(?<name>.+?) \(CHD\).*FARE U USD\s+(?<fare>\d+\.\d{2}).*GRAND TOTAL USD\s+(?<total>\d+\.\d{2}).*45\.FM (?<commission>\S+).*46\.FP (?<FOP>\S+)";
Match m = Regex.Match(request, pattern, RegexOptions.Singleline);
Console.WriteLine("Name: {0}", m.Groups["name"]);
Console.WriteLine("Fare: {0}", m.Groups["fare"]);
Console.WriteLine("Total: {0}", m.Groups["total"]);
Console.WriteLine("Commission: {0}", m.Groups["commission"]);
Console.WriteLine("FOP: {0}", m.Groups["FOP"]);
*/
Match m1 = Regex.Match(request, @"FXP/R,U\s+(.+?) \(CHD\)", RegexOptions.Singleline);
string name = m1.Groups[1].Value;
Match m2 = Regex.Match(request, @"FARE U USD\s+(\d+\.\d{2})");
string fare = m2.Groups[1].Value;
Match m3 = Regex.Match(request, @"GRAND TOTAL USD\s+(\d+\.\d{2})");
string total = m3.Groups[1].Value;
Match m4 = Regex.Match(request, @"45\.FM (\S+)");
string commission = m4.Groups[1].Value;
Match m5 = Regex.Match(request, @"46\.FP (\S+)");
string fop = m5.Groups[1].Value;
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Fare: {0}", fare);
Console.WriteLine("Total: {0}", total);
Console.WriteLine("Commission: {0}", commission);
Console.WriteLine("FOP: {0}", fop);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJc3RyaW5nIHJlcXVlc3Q9IEAiVFNUMDAwMDkgRENBMVMyMTFFIFJILzA3RkVCIEYgTiBMRCAxM0ZFQjEzIE9EIFNBTlNBTiBTSSAgICAgICAgICAgICAgICAgICAgIApULUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApGWFAvUixVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAozLk1BQ0RPUk1BTi9TQU0gQ09SQklOIChDSEQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoxICAgU0FOIEJBICAyNzIgTiAyNEpVTiAgODI1UCBPSyBOSFhVUUNOSiBDSCAgICAgMjRKVU4yNEpVTiAxUEMgICAgICAgICAgICAgICAgCjIgTyBMSFIgQkEgIDI3MyBOIDA3QVVHICAzMjVQIE9LIE5IWFVRQ05KIENIICAgICAwN0FVRzA3QVVHIDFQQyAgICAgICAgICAgICAgICAKIFNBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApGQVJFICBVIFVTRCAgICAgNDkyLjAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApUWDAwMSBYIFVTRCAgIDQ1OC4wMFlRQUMgVFgwMDIgWCBVU0QgICAgIDUuNTBZQ0FFIFRYMDAzIFggVVNEICAgIDE3LjIwVVNBUCAgICAgIApUWDAwNCBYIFVTRCAgICAxNy4yMFVTQVMgVFgwMDUgWCBVU0QgICAgIDUuMDBYQUNPIFRYMDA2IFggVVNEICAgICA3LjAwWFlDUiAgICAgIApUWDAwNyBYIFVTRCAgICAgMi41MEFZU0UgVFgwMDggWCBVU0QgICAxMDUuNjFHQkFEIFRYMDA5IFggVVNEICAgIDYyLjY2VUJBUyAgICAgIApUWDAxMCBYIFVTRCAgICAgNC41MFhGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApUT1RBTCAgIFVTRCAgICAxMTc3LjE3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHUkFORCBUT1RBTCBVU0QgICAgMTE3Ny4xNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApTQU4gQkEgTE9OIE0vQlQgTkhYVVFDTkovQ0ggQkEgU0FOIE0vQlQgTkhYVVFDTkovQ0ggRU5EICAgICAgICAgICAgICAgICAgICAgICAgIApST0UxLjAwMDAwMCBYRiBTQU40LjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgpCVDExOTUzNjQqQkEgKkZNMC4wMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKNDAuRkUgQkEgT05MWS9OT05SRUYvTk9ORU5EIFNFRSBHR0FJUkJBR1VTQSAtQkc6QkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo0NS5GTSAqTSowLjAwQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjQ2LkZQIENIRUNLIjsKICAgICAgICAvKgogICAgICAgIHN0cmluZyBwYXR0ZXJuID0gQCJGWFAvUixVXHMrKD88bmFtZT4uKz8pIFwoQ0hEXCkuKkZBUkUgIFUgVVNEXHMrKD88ZmFyZT5cZCtcLlxkezJ9KS4qR1JBTkQgVE9UQUwgVVNEXHMrKD88dG90YWw+XGQrXC5cZHsyfSkuKjQ1XC5GTSAoPzxjb21taXNzaW9uPlxTKykuKjQ2XC5GUCAoPzxGT1A+XFMrKSI7CiAgICAgICAgCiAgICAgICAgTWF0Y2ggbSA9IFJlZ2V4Lk1hdGNoKHJlcXVlc3QsIHBhdHRlcm4sIFJlZ2V4T3B0aW9ucy5TaW5nbGVsaW5lKTsKICAgICAgICAKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiTmFtZTogezB9IiwgbS5Hcm91cHNbIm5hbWUiXSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkZhcmU6IHswfSIsIG0uR3JvdXBzWyJmYXJlIl0pOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJUb3RhbDogezB9IiwgbS5Hcm91cHNbInRvdGFsIl0pOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJDb21taXNzaW9uOiB7MH0iLCBtLkdyb3Vwc1siY29tbWlzc2lvbiJdKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRk9QOiB7MH0iLCBtLkdyb3Vwc1siRk9QIl0pOwogICAgICAgICovCiAgICAgICAgCiAgICAgICAgTWF0Y2ggbTEgPSBSZWdleC5NYXRjaChyZXF1ZXN0LCBAIkZYUC9SLFVccysoLis/KSBcKENIRFwpIiwgUmVnZXhPcHRpb25zLlNpbmdsZWxpbmUpOwogICAgICAgIHN0cmluZyBuYW1lID0gbTEuR3JvdXBzWzFdLlZhbHVlOwogICAgICAgIAogICAgICAgIE1hdGNoIG0yID0gUmVnZXguTWF0Y2gocmVxdWVzdCwgQCJGQVJFICBVIFVTRFxzKyhcZCtcLlxkezJ9KSIpOwogICAgICAgIHN0cmluZyBmYXJlID0gbTIuR3JvdXBzWzFdLlZhbHVlOwogICAgICAgIAogICAgICAgIE1hdGNoIG0zID0gUmVnZXguTWF0Y2gocmVxdWVzdCwgQCJHUkFORCBUT1RBTCBVU0RccysoXGQrXC5cZHsyfSkiKTsKICAgICAgICBzdHJpbmcgdG90YWwgPSBtMy5Hcm91cHNbMV0uVmFsdWU7CiAgICAgICAgCiAgICAgICAgTWF0Y2ggbTQgPSBSZWdleC5NYXRjaChyZXF1ZXN0LCBAIjQ1XC5GTSAoXFMrKSIpOwogICAgICAgIHN0cmluZyBjb21taXNzaW9uID0gbTQuR3JvdXBzWzFdLlZhbHVlOwogICAgICAgIAogICAgICAgIE1hdGNoIG01ID0gUmVnZXguTWF0Y2gocmVxdWVzdCwgQCI0NlwuRlAgKFxTKykiKTsKICAgICAgICBzdHJpbmcgZm9wID0gbTUuR3JvdXBzWzFdLlZhbHVlOwogICAgICAgIAogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJOYW1lOiB7MH0iLCBuYW1lKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRmFyZTogezB9IiwgZmFyZSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIlRvdGFsOiB7MH0iLCB0b3RhbCk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkNvbW1pc3Npb246IHswfSIsIGNvbW1pc3Npb24pOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJGT1A6IHswfSIsIGZvcCk7CiAgICAgICAgCgl9Cn0=