Text in Sätze zerlegen mit Regex

07/08/2008 - 21:41 von Harald Klingel | Report spam
Hallo zusammen,

ich verzweifele sschon seit heute morgen an folgendem Problem:
Ich habe einen Text, bei dem ich jeden Satz einzeln benötige.

Satzabschließende Zeichen sind ja '.', '!' und '?'. Dementsprechend habe ich
das Pattern [.!?] verwendet, um den Text zu splitten.

Das funktioniert auch prima, nur das ein '.' auch eine Abkürzung ('z.B.,
Dr., s.o.') beenden kann, und somit in diesem Fall kein satzabschließendes
Zeichen ist.

Mein Ziel wàre also ein regulàrer Ausdruck, der alle Vorkommen von [.!?]
findet, aber nur, wenn es sich nicht um 'Dr.' o.Ä. handelt.

Wie kann ein solches Pattern aussehen? Zur Verdeutlichung noch ein
misratener Versuch von mir:

[.!?][^Dr]

Vielen Dank im Voraus,
Harald
 

Lesen sie die antworten

#1 Frank Dzaebel
08/08/2008 - 08:23 | Warnen spam
Hallo Harald,

Satzabschließende Zeichen sind ja '.', '!' und '?'. Dementsprechend habe ich
das Pattern [.!?] verwendet, um den Text zu splitten.
Das funktioniert auch prima, nur das ein '.' auch eine Abkürzung ('z.B.,
Dr., s.o.') beenden kann, und somit in diesem Fall kein satzabschließendes
Zeichen ist. [...] Wie kann ein solches Pattern aussehen?



Da es im Deutschen viele tausend Abkürzungen gibt,
ist soetwas mit wenig Aufwand nur unvollstàndig darstellbar.

Du könntest aber pragmatischerweise Heuristiken nehmen.
Dass nur ein Buchstabe mit Punkt wohl als Abkürzung
genommen werden kann. Dass ein Wort aus reinen
Konsonanten als Abkürzung zu interpretieren wàre.
Dass nach dem Satzendzeichen gross geschrieben wird.
Damit kannst Du schon mal einiges erschlagen.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen