Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Peter Otten <__peter__@web.de> Newsgroups: de.comp.lang.python Subject: Re: [Python-de] string split Date: Wed, 22 Feb 2017 18:24:18 +0100 Organization: None Lines: 40 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8Bit X-Trace: news.uni-berlin.de HB7492ubz/A8Lzi3+ifdhAsuIMiH66BQkLZRKxIHP8Qg== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org X-Injected-Via-Gmane: http://gmane.org/ User-Agent: KNode/4.13.3 X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: Xref: csiph.com de.comp.lang.python:4676 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.:'