Seite 1 von 1

Zeilenform eines Textes durch Python verändern

Verfasst: Mittwoch 25. November 2009, 02:02
von Alicia_Carlos
Hallo zusammen,

ich habe folgendes Problem :oops: :

Wie kann man die Zeilenform eines Textes für allgemeine Fälle verändern?

Beispiel:

Wir haben z.B. folgenden Text:

Der Mann brauchte 3h 20 min um den Fluss Rio Oro zu überqueren!

der umgewandelt werden soll in:

Der Mann brauchte 3 St. "20" um den Fluss R.O. zu überqueren!

und dies soll für "allgemeine Fälle" gelten und nicht nur für diese expliziten Beispiele:

z.B. muss auch:

Der Mann brauchte 4h 12 min um den Fluss Rio Oro zu überqueren!

in:

Der Mann brauchte 4 St. "12" um den Fluss R.O. zu überqueren!


also allgemein:

Der Mann brauchte (Zahl)h (Zahl) min um den Fluss Rio Oro zu überqueren!

in:

Der Mann brauchte (Zahl) St. "(Zahl)" um den Fluss R.O. zu überqueren!

und das für alle Zeilen des Textes!

Danke euch! :oops:

Verfasst: Mittwoch 25. November 2009, 02:36
von problembär
Übersetz' mal das nach Python (mit dem Modul "re"):

Code: Alles auswählen

perl -e '$a="Der Mann brauchte 4h 12 min um den Fluss Rio Oro zu überqueren!";$a=~s/(\d+)h (\d+) min/$1 St\. \"$2\"/g;print "$a\n";'
Ich mach' hier nicht Deine Arbeit :evil:, vor allem, wenn Du Dich noch nicht mal mehr zu dem Java-Code-Thread äußerst.

Gruß

Re: Zeilenform eines Textes durch Python verändern

Verfasst: Mittwoch 25. November 2009, 08:39
von Hyperion
Alicia_Carlos hat geschrieben: also allgemein:

Der Mann brauchte (Zahl)h (Zahl) min um den Fluss Rio Oro zu überqueren!

in:

Der Mann brauchte (Zahl) St. "(Zahl)" um den Fluss R.O. zu überqueren!
Wenn es genau dabei bleibt, schau Dir mal string.split() an und dann string.join().

Ansonsten (Wenn also das drum herum anders sein kann also z.B. mehr Wörter drum herum) wirst Du an einem RegExp nicht vorbeikommen denke ich. Dazu schau Dir das re-Modul an. Dazu Kodos o.ä. zum Testen der selbigen.
Alicia_Carlos hat geschrieben: und das für alle Zeilen des Textes!
Na das sind ja echt Basics. Es kommt natürlich drauf an, wie der Text vorliegt. Wenn es pro Zeile der Satz ist, dann ist es echt einfach! Wenn nicht, müßtest Du den Text eben noch an den Satzendezeichen "aufbrechen" (s.o.).