• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

String in Sätze trennen

blabla333

Mitglied
Ich möchte einen String in einzelne Sätze trennen - was ja gar nicht mal so trivial ist.
Ich habe zunächst einen Satz so definiert, dass er mit einem Satzzeichen, einem Leerzeichen und einem folgenden Großbuchstaben unterschieden werden kann. Aber das will nicht so ganz funkionieren:

PHP:
preg_match_all ("%(.*?[\?\!\.\:\;]{1,})[\ ]{0,}(?=[A-Z\d])|(.*?[\?\!\.]{1,})$%", $text, $sentences);

Bei mir wird bei "z.B." nach dem "z." getrennt, obwohl kein Leerzeichen dazwischen liegt.

Hat jemand eine bessere Idee? Bin für jede Erweiterung dankbar. Den Ausdruck kann man sicherlich noch optimieren. Es ist nun mal sehr schwierig alle Eventualitäten herauszufiltern (Abkürzungen usw.).
Im Falle des ";" würde auch kein Großbuchstabe folgen, dafür kommt dieses Zeichen auch nicht in Abkürzungen vor...

Eigentlich müsste man doch einfach nur nach jedem Satzzeichen trennen können und lediglich bei dem Punkt an die Ausnahmen denken (Abkürzungen, wie z.B., Dr., Tel.:, usw.), oder?
 
Werbung:
Zurück
Oben