linux-l: perl und regexpr
Robert C. Helling
helling at aei-potsdam.mpg.de
Mi Jan 17 10:46:48 CET 2001
On Wed, 17 Jan 2001, Ulrich Wiederhold wrote:
> Hallo,
> mal wieder ein kleines Perl-Problem, womit ich einfach nicht
> weiterkomme.
> Ich möchte bei einem String alle Zeichen vor einer bestimmten Zeichen,
> z.b. @ abschneiden und alle Zeichen nach einer bestimmten Zeichenkette,
> also z.B. .de. Das Mittelstück will ich weiterverwenden.
>
> Meine Versuche sind bisweilen an folgendem gescheitert!
> :(
>
> $var[0] =~ s/^(.*)(@.*de)(.*)$/$2/;
>
Eine Frage noch, bevor es losgeht: Sollen jeweils die ersten oder letzten
Vorkommen von @ bzw de zaehlen (denke zB an meine eMail-Adresse
robert at atdotde.de)? Ich nehme mal das erste @ und das letzte de. Und
meinst Du nicht vielleicht '.de'?
Ich wuerde das so machen:
if($var[0] =~ /\@.*de/){
$var[0] = $&;
}
else{
warn("$var[0] is not of the assumed form!\n");
}
>
> Wo ist der Fehler? Ich habe X Möglichkeiten ausprobiert! Davor und
> dahinter können auch Leerzeichen oder tabs etc sein...
> :)
Soltest Du vielleicht das @ escapen?
>
> Wann verwendet man eigentich : anstelle von /? Habe ich beides gesehen!
>
Je nach Laune. Insbesondere, wenn im Suchstring viele / vorkommen, bietet
sich was anderes an.
Viele Gruesse
Robert
--
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling Institut fuer Physik
Humboldt-Universitaet zu Berlin
print "Just another Fon +49 30 2093 7964
stupid .sig\n"; http://www.aei-potsdam.mpg.de/~helling
Mehr Informationen über die Mailingliste linux-l