using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
var client = new HttpClient();
var url = "https://ctv.modality.nl/track-and-trace/";
var containerNumber = "TLLU 451629 1";
containerNumber = Regex.Replace(containerNumber, @"\s+", "");
if (!Regex.IsMatch(containerNumber, @"[A-Z]{4}\d{7}"))
var container = $"{containerNumber.Substring(0,4)} {containerNumber.Substring(4,6)} {containerNumber[10]}";
Console.WriteLine(container);
if (!Regex.IsMatch(container, @"[A-Z]{4} \d{6} \d"))
var formContent = new FormUrlEncodedContent(new[]
new KeyValuePair<string, string>("_qf__form", ""),
new KeyValuePair<string, string>("terminal", "CTV"),
new KeyValuePair<string, string>("container", container),
var response = client.PostAsync(url, formContent);
var content = response.Result.Content.ReadAsStringAsync();
var pattern = @"(?:<b>PRESENT<\/b>.(?<PRESENT>[A-Z]\w+))(?:<br \/><b>STATUS<\/b>.(?<AVAILABLE>[A-Z]\w+)|.+)";
var regex = new Regex(pattern);
var match = regex.Match(content.Result);
if (match.Success && match.Groups.Count > 1)
for(int i = 1; i < match.Groups.Count; i++)
Console.WriteLine("Result: " + g.ToString());