Я пытаюсь использовать 2 шаблона регулярных выражений для извлечения определенных c данных из этого pdf
public static void ReadPDF()
{
using (PdfReader reader = new PdfReader(@"\\cytgit\Applications\C#\EZDock\CEVA.pdf"))
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
string text = PdfTextExtractor.GetTextFromPage(reader, i);
string pattern2 = @"^\W*([\w-]+.*\n{1})Route Name:";
Regex r2 = new Regex(pattern2, RegexOptions.Multiline);
foreach (Match m in r2.Matches(text))
{
Debug.Print((m.Value.Substring(0, 13)));
}
string pattern = @"(?<=.*Initial Arrival.*(\n)).*?(?=(\r?\n)|$)";
Regex r = new Regex(pattern, RegexOptions.Multiline);
foreach (Match m in r.Matches(text))
{
List<string> stringList = m.Value.Split(' ').ToList();
Routes.Add(new Routes { CarrierArrival = DateTime.Parse(stringList[0], System.Globalization.CultureInfo.InvariantCulture), CarrierDeparture = DateTime.Parse(stringList[1], System.Globalization.CultureInfo.InvariantCulture), PlantDestination = stringList[2], DockCode = stringList[3], InitialDest = stringList[4], InitialArrival = stringList[5], FinalLocation = stringList[6], Transit = stringList[7], PickupFreq = stringList[8], DeliveryFreq = stringList[9]});
}
}
}
}
Таким образом, он печатает правильные данные на первом foreach
, а второй foreach
отлично работает также. Моя цель здесь - поместить то, что печатается в первом foreach
, в тот же список, что и то, что добавлено во втором foreach
stringList
, таким образом я могу добавить m.Value.Substring(0, 13)
в stringList
, чтобы иметь возможность добавлять это на новый Route