Thread Pfad mit regex entfernen
(14 answers)
Opened by Superfrank at 2013-02-01 16:52
Ich würde auch zu File::Basename greifen und raten.
Dein Regex kann nur das ersetzen, was er zuvor gefunden hat; da fehlt leider der gesamte vordere Pfade (aaa/bbb) . Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #! /usr/bin/perl use strict; use warnings; use File::Basename qw( basename ); my $dir = 'aaa/bbb/ccc.php'; # nicht ersetzen, sondern einfangen; spart Arbeit my ($last_part) = $dir =~ m{([^/]+)$}; # basename nutzen my $basename = basename($dir); # oder alles ersetzen (nicht nur den letzten Teil) $dir =~ s{.*?([^/]+)$}{$1}; print "Matched: $last_part\n", "basename: $basename\n", "Replaced: $dir\n", ; __DATA__ Result should be: Matched: ccc.php basename: ccc.php Replaced: ccc.php Last edited: 2013-02-01 23:33:05 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |