Thread Pfad mit regex entfernen (14 answers)
Opened by Superfrank at 2013-02-01 16:52

Linuxer
 2013-02-01 17:12
#165395 #165395
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
Ich würde auch zu Perldoc: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!

View full thread Pfad mit regex entfernen