Perl Regexp

Nils Juenemann nils.juenemann at contec-dt.de
Don Jul 13 14:47:55 CEST 2000


lutz at iks-jena.de wrote:

> Mit split kannst Du ($a, $b) = split(/\./, $string, 2) sagen. Allerdings
> trennt das am ersten Punkt.

Klar. Hab nur den Backslash vergessen zu tippen. 

> Mit ($a, $b) = ($1, $2) if /^(.*)\.([^.]*)$/ kannst Du den letzten Punkt
> nehmen.

Das funktioniert aber nur bei gleicher Punktanzahl. 

> Noch effizienter ist aber rindex und substr.

Ich habs jetzt so gemacht:

@feld = split /\./, $file;
$laenge = @feld;
$i = $laenge;
for($i = 0; $i < $laenge; $i++) {
  if ($i == $laenge-1) {
    $neu = "$neu" . "$newstring" .  ".";
  }
  $neu = "$neu" . "$feld[$i]" . ".";
}

Das Problem war ich habe tausende von files, welche alle 
noch etwas vor die Dateierweiterung bekommen sollen.

Also aus blafasel.123.test.txt soll blafasel.123.test.neu.txt
werden. Wobei die Anzahl der Punkte variert.

-- 
Nils Juenemann                  voice: +49-3677-6474 136
contec Datentechnik GmbH              make your net work