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:
Link zu diesem Kommentar
Auf anderen Seiten teilen
6 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.