Text durchsuchen, reguläre Ausdrücke

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Marcel11
User
Beiträge: 3
Registriert: Mittwoch 20. September 2017, 18:46

Guten Tag,

ich bin sehr frisch in Python - bahne mir gerade meinen Weg durch die Grundbefehle :D und habe dabei einige Fragen. (ich habe probiert hier im Forum mitzulesen, finde aber nicht so recht was ich suche)

Um ein Liste oder einen Text nach Wortmustern zu durchsuchen brauche ich reguläre Ausdrücke. Das habe ich verstanden. Nur habe ich nun eine kleine Denkblockade - Kann ich mit Hilfe regulärer Ausdrücke einen Text durchsuchen, die Muster finden und die Zeile in der sie vorkommen als externe Matrix erscheinen lassen sozusagen ?

Also ein Programm, welches das Muster findet und gebündelt alle Fundstellen im Text ausgibt ? Komme da konzeptionell nicht ganz hinter her, ie man hier beginnt...
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das muss man — Trommelwirbel — programmieren. Du musst halt die Fundstellen aufsammeln und in einer geeigneten Datenstruktur speichern. Nach deiner dünnen Beschreibung wäre das erstmal eine Liste. „Matrix“ impliziert mindestens 2 Dimensionen, da fehlt mir jetzt die Vorschrift wie man aus einer Reihe von Textstellen so etwas aufbaut.
Marcel11
User
Beiträge: 3
Registriert: Mittwoch 20. September 2017, 18:46

Ja, das mit der Matrix war deutlich schlecht gewählt .... Mein Problem hierbei ist, dass ich weiß wie ich zum Beispiel Wörter in einem Text finde. Ich weiß auch wie ich Wörter zähle etc. Aber wie ich die Position einer Fundstelle ausgebe ist mir nicht geläufig.

Als konkretes Beispiel: Ich möchte Beispiel.txt nach dem Nachnahmen "Müller" durchsuchen. Sobald mein Programm diesen Namen gefunden hat, soll es die Fundstelle in einer externen Liste printen. Sodass am Ende Beispielsweise (Zeile1, Zeile16, Zeile 24 etc.) bei rauskommt und ich diese Zeileninfos ggbf. weiterverwenden kann.

Ich finde nicht den wirklichen Befehl, der mir hierbei weiterhelfen könnte. Den Namen an sich finde ich in der Liste und kann auch Zählen wie oft er vorkommt. Nur der nächste Step fällt mir schwer...
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die regulären Asudrücke verraten dir auch die Position einer Fundstelle. Die muss dann halt abgespeichert werden. Wenn du eine Abbildung von Wort auf Fundstellen haben willst, musst du ein Wörterbuch verwenden, welches Strings auf eine Liste abbildet. Datenstrukturen sind enorm wichtig, ich empfehle das durcharbeiten der Python Tutorials zu dem Thema.
Antworten