seth: RegEx für Sätze

Beitrag lesen

gudn tach!

Wenn String länger ist als 20 Zeichen, dann soll er den Satz noch beenden, bevor er abschneidet.

$str=~s/^(.{1,19}(?:$|.|[^.]+)).*/$1/;

max. 19 beliebige zeichen, gefolgt von einem der drei folgenden dinger:
a) stringende (abschliessender zeilenumbruch erlaubt)
b) punkt
c) beliebig langer string, der aus nicht-punkten besteht
und schliesslich dem abzuschneidenen rest.

klar ist, dass hier keine ueberpruefung erfolgt, ob bspw. der punkt hinter abkuerzungen ein satz-ende darstellt oder nicht. ebenso gibt es ja noch weitere satz-ende-zeichen wie z.b. ?, !, ... etc.

prost
seth