Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4676

Re: [Python-de] string split

From Peter Otten <__peter__@web.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] string split
Date 2017-02-22 18:24 +0100
Organization None
Message-ID <mailman.6.1487784337.2669.python-de@python.org> (permalink)
References <CABTCcybjz2=TpMUvM7ur_obHfx2BGuoF4tohGuipgfrbonLcBA@mail.gmail.com> <o8khfs$ft0$1@blaine.gmane.org>

Show all headers | View raw


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.:'

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de] string split Peter Otten <__peter__@web.de> - 2017-02-22 18:24 +0100

csiph-web