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

Aristoteles Pagaltzis pagaltzis at gmx.de
So Aug 17 08:11:08 PDT 2008


* Torsten Knorr <create-soft at tiscali.de> [2008-08-17 09:10]:
> 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);

Das erfüllt die Anforderungen nicht. In »Affe klettert« sollen
sowohl »Affe klettert« als auch das darin enthaltene »Affe«
überlappend als Schlüsselwortvorkommen markiert werden, dein
Versuch findet aber nur das »Affe klettert«. Das kann man mit
einem einzigen `s///`-Aufruf nicht lösen.

Gruß,
-- 
Aristoteles Pagaltzis // <http://plasmasturm.org/>


Mehr Informationen über die Mailingliste Dresden-pm