[Dresden-pm] Reguläre Ausdrücke - Suchen und Ersetzen von Worten

Torsten Knorr create-soft at tiscali.de
So Aug 17 00:05:03 PDT 2008


#!/usr/bin/perl -w
=head
Thomas Rittsche Tue, 12 Aug 2008 10:04:11 +0200

>Hallo an alle,
>ich habe mal wieder ein Problem, bei dem ich =FCberhaupt keine Idee
>habe, wie man da rangehen k=F6nnte.
>
>Das Ziel ist es bestimmte W=F6rter bzw. Wortgruppen in einem Text durch
>einen Link zu ersetzen (bzw. den Link darum zu bauen). Mit einzelnen
>W=F6rtern ist das alles kein Problem. Die Schwierigkeit liegt in
>Wortgruppen, die selbst als Schl=FCsselworte definiert sind und dabei
>einzelne Schl=FCsselworte enthalten.

=cut
#-------------------------------------------------
 use strict;
#-------------------------------------------------
 my $text = '
Ein Affe klettert, weil er ein Affe ist. Ein Hund rennt, 
weil er ein Hund ist. Der Menschenaffe stirbt aus.
Der Menschenaffe klettert nicht so gut.
Auf die Bäume Ihr Affen.
Heute ist eine Affenhitze.
';
 my @keywords = ('menschenaffe', 'affe', 'hund', 'affe klettert', 'hund rennt', 'affe ist schlau');
 my $str_kw =
 	join('|', 
 		map { quotemeta($_) }
 			sort { length($b) <=> length($a) } @keywords
 	);
 $text =~ s{\b($str_kw)\b}{<a href="$1.html">$1</a>}ig;
 print($text);
#-------------------------------------------------
# T.


Mehr Informationen über die Mailingliste Dresden-pm