string/satz trennen am satzzeichen

MikeDe

Mitglied
ich möchte ein string kürzen und das aber möglichst nach einem satzzeichen, also . und ? und !

so habe ich es bist jetzt immer gemacht um an einem PUNKT den string möglichst "schön" zu trennen.

PHP:
substr($string), 0, strpos($string,". ",240)+1)

ich suche aber eine möglichkeit den string auch an anderen satzzeichen zu trennen, also nach 240 zeichen an einem der drei möglichen satzzeichen.

jemand einen tipp?
 
Dabei duerften Dir wohl regulaere Ausdruecke helfen koennen.
Z.B. koenntest Du mit preg_split() den String in einzelne Saetze zerlegen und dann die Saetze so lang zusammenfuegen bis Du an Deinem Limit angekommen bist.

Und halte Dich bitte an Gross- und Kleinschreibung.
 
Ich komme hier leider nicht weiter.

$avar = preg_split("/[.|!|?]/", $str);

Er trennt mir vor dem Satzzeichen und frisst mir diese dann auch bei der Ausgabe! Wie kann ich das verhindern?

Cheers
 
Zuletzt bearbeitet:
Du vermischst gerade eine Zeichenklasse mit einer ODER-Konstrukt. Dass die Trennzeichen nicht erhalten bleiben, kannst du mit einer Assertion erreichen:
Code:
(?<=[.!?])
 
Du vermischst gerade eine Zeichenklasse mit einer ODER-Konstrukt. Dass die Trennzeichen nicht erhalten bleiben, kannst du mit einer Assertion erreichen:
Code:
(?<=[.!?])

Ähm ich will ja das er die Zeichen erhalten bleiben. so wie ich es oben habe trennt er mir ja den String/Text in einzelne Sätze nur er unterschlägt mir dann dabei die Satzzeichen!
 
Ich hab mich wohl verschreiben: Die Assertion sorgt ja gerade dafür, dass der enthaltene Ausdruck nicht Bestandteil des Treffers wird und er damit erhalten bleibt.
 
Zurück