[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