[Python-de] Regulaere Ausdruecke in Python

Martin v. Loewis martin at loewis.home.cs.tu-berlin.de
Thu Oct 4 22:14:15 EDT 2001


> Hm!! Warum einfach wenn´s auch umständlich geht. Um es mal frei
> heraus zu sagen ich möchte in einer Textdatei die Anzahl der Sätze
> bestimmen. (Das Skript dient nur der Übung). Ein Satz ist ein Satz
> wenn am Ende ein >.<, oder ein >?<, oder ein >!< auftaucht.

Wenn das Deine Definition von "Satz" ist, geht es bedeutend einfacher:

daten = open(filename).read()
saetze = daten.count(".")+daten.count("?")+daten.count("!")

Das zählt zwar nur die Satzendezeichen, es scheint aber, dass man
immer sagen kann, dass ein Satzendezeichen am Ende eines Satzes steht.

Falls Du weiterhin verlangen willst, dass nur diejenigen Textstücken
Sätze sind, in denen lediglich Buchstaben stehen, dann sollte
folgendes gehen:

saetze = 0
for s in re.split("[!?.]",daten):
  if re.match("^[A-Za-z ]*$", s):
    saetze += 1

Dazu sollte man natürlich entweder die Zeilenenden loswerden, oder in
Sätzen erlauben.

Ciao,
Martin



More information about the Python-de mailing list