ich habe Probleme mit Regex und finde es sehr schwierig da etwas zu finden. Ich habe in C# eine string-Variable mit nem Haufen Text drin und die ist (zumindest laut Consolen-Ausgabe) auch mit Zeilen formatiert und sollte so bleiben.
Jetzt versuche ich mit Regex nur einen Ausschnitt aus dem ganzen Text zu bekommen. Über eine Zeile funktioniert mit dem Syntax:
(?<=to:).+(?=T:)
Heißt hätte ich die Zeile blato: 123 abc T: bla
Würde ich den Output 123 abc bekommen.
Jetzt sieht mein Text aber als Beispiel so aus:
blato:
123
abc
T: lalala
und ich möchte trotzdem nur
123
abc
als Ausgabe haben. Was muss ich an der Syntax ändern damit die Suche über mehrere Zeilen geht?
Mein Code sieht momentan komplett so aus:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;using iTextSharp.text.pdf;using iTextSharp.text.pdf.parser;usingSystem.Text.RegularExpressions;namespaceReadPDF{classProgram{staticvoidMain(string[] args){try{
var text =newStringBuilder();
var currentText ="";//get all text from pdfusing(var pdfReader =newPdfReader("C:\\Temp\\example.pdf")){for(var page =1; page <= pdfReader.NumberOfPages; page++){ITextExtractionStrategy strategy =newSimpleTextExtractionStrategy();
currentText =PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
currentText =Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(currentText)));
text.Append(currentText);}}Console.WriteLine(currentText);//Show me the text from the pdf-fileConsole.WriteLine("");
string newtext =Convert.ToString(currentText);//needed for Regex//get what I needRegex r =newRegex("(?<=to:).+(?=T:)");//???Match m = r.Match(newtext);if(m.Success==true){Console.WriteLine(m);}Console.ReadKey();}catch(Exception ex){Console.WriteLine(Convert.ToString(ex));}}}}
Frage
Tician
Hallöööchen mit 3 öchen,
ich habe Probleme mit Regex und finde es sehr schwierig da etwas zu finden. Ich habe in C# eine string-Variable mit nem Haufen Text drin und die ist (zumindest laut Consolen-Ausgabe) auch mit Zeilen formatiert und sollte so bleiben.
Jetzt versuche ich mit Regex nur einen Ausschnitt aus dem ganzen Text zu bekommen. Über eine Zeile funktioniert mit dem Syntax:
(?<=to:).+(?=T:)
Heißt hätte ich die Zeile blato: 123 abc T: bla
Würde ich den Output 123 abc bekommen.
Jetzt sieht mein Text aber als Beispiel so aus:
blato: 123 abc T: lalala
und ich möchte trotzdem nur
123
abc
als Ausgabe haben. Was muss ich an der Syntax ändern damit die Suche über mehrere Zeilen geht?
Mein Code sieht momentan komplett so aus:
6 Antworten auf diese Frage
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden