Regular Expression Frage
domi
- perl
Hallo!
Ich möchte in einem String nach 200 Zeichen die Zeichenfolge (...) anhängen und der Rest von dem String soll gelöscht werden.
Bis jetzt mache ich das so, das funktionert bis auf das mit dem restlichen abschneiden.
$text =~ s/(.{200}[^\n])[ -]/$1 (...)/i;
Ausserdem sollte er noch schauen, ob eventuell ein </b> noch folgen wird, wenn ja dann soll er das noch mitnehmen, damit das Tag geschlossen ist, das wiederrum ist aber nicht ganz so wichtig, wichtiger ist, das der rest weggeschnitten wird! ;)
Hat jemand eine Idee?
Würde mich freuen!
Grüße,
domi
Hallo domi,
Hallo!
Ich möchte in einem String nach 200 Zeichen die Zeichenfolge (...) anhängen und der Rest von dem String soll gelöscht werden.
ich weiß nicht, ob es die Funktion in Perl auch gibt (kann kein Perl), aber in php heißt sie substr() http://www.php.net/manual/de/function.substr.php da sind auch einige Beispiele dabei, wie man das Trennen in einem Wort verhindert - vielleicht hilft es dir ja.
Grüße aus Nürnberg
Tobias
Hallo
Ich möchte in einem String nach 200 Zeichen die Zeichenfolge (...) anhängen und der Rest von dem String soll gelöscht werden.
ich weiß nicht, ob es die Funktion in Perl auch gibt (kann kein Perl), aber in php heißt sie substr() http://www.php.net/manual/de/function.substr.php da sind auch einige Beispiele dabei, wie man das Trennen in einem Wort verhindert - vielleicht hilft es dir ja.
In Perl heißt die Funktion auch so... (obwohl das noch keine 200 Zeichen waren ;-))
http://www.perldoc.com/perl5.6/pod/func/substr.html
Gruss,
Vinzenz
In Perl heißt die Funktion auch so... (obwohl das noch keine 200 Zeichen waren ;-))
http://www.perldoc.com/perl5.6/pod/func/substr.html
danke!
substr kenn ich doch ;)
Problem ist nur, ich muss da wirklich aufpassen, dass nichts wichtiges abgeschnitten wird:
Das ganze soll maximal 200 Zeichen lang sein, sollte aber davor ein <b> oder ein <u> geöffnet worden sein, sollte das dann geschlossen werden. Ausserdem darf nicht mitten in einem Wort abgeschnitten werden, sondern danach. Trotzdem darf das ganze nicht 200 Zeichen überschreiten.
Ich würde das gerne mit einem regexp machen, aber jede andere lösung ist mir auch willkommen! :))
danke!
Grüße,
domi
Hallo domi,
Das ganze soll maximal 200 Zeichen lang sein, sollte aber davor ein <b> oder ein <u> geöffnet worden sein, sollte das dann geschlossen werden.
du könntest nach dem letzten Vorkommen von <b> und </b> suche, und wenn </b> weiter vorne ist (oder nicht vorhanden) dann must du noch eins hinkleben.
Ausserdem darf nicht mitten in einem Wort abgeschnitten werden, sondern danach. Trotzdem darf das ganze nicht 200 Zeichen überschreiten.
dafür lässt sich vermutlich das Beispiel in http://www.php.net/manual/de/function.substr.php entsprechend in perl umstricken.
Grüße aus Nürnberg
Tobias