[Python-de] string split
Peter Otten
__peter__ at web.de
Mi Feb 22 12:24:18 EST 2017
Frank Grellert wrote:
> Ich habe ein kniffliges Problem zu lösen:
> Ein längerer Text soll in einzelne Sätze aufgespalten werden. Leider
> enden nicht alle Sätze am Zeilenende und darüber hinaus enden auch
> nicht alle mit einem Punkt. Der Text lautet:
>
> text = """Dies ist ein Auszug aus einem langen Text: Welche Zeichen
> befinden sich am Satzende?
> Manchmal ist es ein Ausrufezeichen! Häufig ist es ein Punkt.
> """
> Hat jemand eine Idee?
Vielleicht experimentierst Du mal mit regulären Ausdrücken, z. B.:
>>> import re
>>> text = """Dies ist ein Auszug aus einem langen Text: Welche Zeichen
... befinden sich am Satzende?
... Manchmal ist es ein Ausrufezeichen! Häufig ist es ein Punkt.
... """
>>> r = re.compile(r"(.+?[:.!?])(?:\s+|$)", re.DOTALL)
>>> for satz in r.findall(text):
... print(repr(satz))
...
'Dies ist ein Auszug aus einem langen Text:'
'Welche Zeichen\nbefinden sich am Satzende?'
'Manchmal ist es ein Ausrufezeichen!'
'Häufig ist es ein Punkt.'
Allerdings:
>>> text = "Vielleicht experimentierst Du mal mit regulären Ausdrücken, z.
B.:"
>>> for satz in r.findall(text):
... print(repr(satz))
...
'Vielleicht experimentierst Du mal mit regulären Ausdrücken, z.'
'B.:'
Mehr Informationen über die Mailingliste python-de