Schrift
[thread]12030[/thread]

String rausfiltern (Seite 2)

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
renee
 2008-06-17 11:54
#111135 #111135
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du nichts in extra Variablen speichern willst, sondern den aktuellen String bearbeiten willst, dann

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl

use strict;
use warnings;

my $string1 = '/pfad/bla/s132424328x/umleitung/datei';
$string1 =~ s!.*?(s1[^/]+).*!$1!;
print "1: $string1\n";

my $string2 = 'pfad/bla/etwas';
$string2 =~ s!^.*?/!!;
print "2: $string2\n";

__END__
C:\Perl>theresa.pl
1: s132424328x
2: bla/etwas
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
theresa
 2008-06-17 12:19
#111136 #111136
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Hallo renee,
hat alles funktioniert, vielen Dank.

Eins habe ich noch. Um aus einem Pfad den Dateiname zu löschen? also das, was dem letzten "/" folgt?
Linuxer
 2008-06-17 12:29
#111137 #111137
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
theresa+2008-06-17 09:39:58--
... und bei der Zeile von Linuxer kommt auch einen Fehler wegen einem unmatched Regex [
Ich kann leider nichts damit anfangen, da ich mich nicht auskenne.


sorry, zu der späten Stunde hab ich nicht mehr dran gedacht, dass / in der Regex verwendet wird und somit als Begrenzer nicht genutzt werden sollte.

Korrekt sollte mein beispiel lauten:

Code (perl): (dl )
$string =~ s{(.*)s1[^/]+/(.*)}{$1$2}; # evtl. mit Modifier /g



theresa+2008-06-17 09:39:58--
Mit rausfiltern meinte ich, der String zwischen s1 und / soll zurückgegeben werden.


Damit fällt mein korrigierter Vorschlag weg, denn er entfernt den gesuchten String aus dem Original.
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!
Linuxer
 2008-06-17 12:31
#111138 #111138
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
theresa+2008-06-17 10:19:49--
Hallo renee,
hat alles funktioniert, vielen Dank.

Eins habe ich noch. Um aus einem Pfad den Dateiname zu löschen? also das, was dem letzten "/" folgt?


File::Basename - dirname

Code (perl): (dl )
1
2
3
4
use File::Basename;
my $path = "/path/to/file";

print dirname( $path ), $/;
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!
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2008-06-16 23:33.