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