Schrift
[thread]5750[/thread]

RegExp

Tags: Ähnliche Threads

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
joey
 2003-09-24 01:19
#55472 #55472
User since
2003-09-24
3 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich bin auf der Suche nach einem regulären Ausdruck, der für mich folgendes erledigt.

Ich habe mit meinem Skript ein File gesucht und den Pfad, in dem ich das File gefunden habe, in einem String gespeichert.

Code (perl): (dl )
$file = /windows/d/Perl/test/3/5/23/7


Jetzt möchte ich einen Teilausdruck davon verwenden und einen neues File anlegen. Dieses soll die Form test-3-5-23-7.txt oder nur 3-5-23-7.txt haben.
Dazu müßte ich die Buchstaben aus meinem String löschen und die / in - umwandeln.

Also meine Frage ist, gibt es eine RegExp die diese Aufgabe meistert.

Ich danke Euch im Voraus für Eure Hilfe.

Gruß joey
format_c
 2003-09-24 01:28
#55473 #55473
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hi
So in etwa:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use warnings;
use strict;


my $var = "/windows/d/Perl/test/3/5/23/7";

$var =~ s%(\d+)/%$1-%g;
$var .= ".txt";

print $var;


Gruß Alex
format_c
 2003-09-24 01:32
#55474 #55474
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Besser noch so fallst auch buchstabenund Zahlen als Pfad ignoriert werden:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use warnings;
use strict;


my $var = "/windows/d/Perl/test/a3/5/23/7";

$var =~ s%(?<=/)(\d+)/%$1-%g;
$var .= ".txt";

print $var;


Gruß Alex
havi
 2003-09-24 01:37
#55475 #55475
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
... oder so:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use warnings;
use strict;

my $var = "/windows/d/Perl/test/3/5/23/7";

$var =~ s%\D*(\d+)/%$1-%g;
$var .= ".txt";

print $var;


Gruss
format_c
 2003-09-24 01:52
#55476 #55476
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ja nur dein RegExt mach aus dem String das:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
format_c@linux:~/perl_samples> perl
my $var = "/windows/d/Perl/test/a3/5/23/7";

$var =~ s%\D*(\d+)/%$1-%g;

$var .= ".txt";

print $var,"\n";

3-5-23-7.txt
format_c@linux:~/perl_samples>


Das sind die Vorteile von look-ahead's und look-behind's
;)
Gruß Alex
format_c
 2003-09-24 01:54
#55477 #55477
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
OK man könnte sich jetzt streiten was die Fragestellung eigentlich war aber ist mir jetzt eigentlich auch egal ich geh nämlich jetzt ins Bett.

Gruß Alex
havi
 2003-09-24 01:56
#55478 #55478
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=format_c,23.09.2003, 23:52]Ja nur dein RegExt mach aus dem String das:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
format_c@linux:~/perl_samples> perl
my $var = "/windows/d/Perl/test/a3/5/23/7";

$var =~ s%\D*(\d+)/%$1-%g;

$var .= ".txt";

print $var,"\n";

3-5-23-7.txt
format_c@linux:~/perl_samples>


Das sind die Vorteile von look-ahead's und look-behind's
;)
Gruß Alex[/quote]
Genau das war ja auch die Anforderung...
havi
 2003-09-24 01:58
#55479 #55479
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=format_c,23.09.2003, 23:54]OK man könnte sich jetzt streiten was die Fragestellung eigentlich war aber ist mir jetzt eigentlich auch egal ich geh nämlich jetzt ins Bett.

Gruß Alex[/quote]
Oh - da hast du es eh schon angesprochen!
Naja, er fragte ja eigentlich nach beide... :)

Gute Nacht!
format_c
 2003-09-24 02:00
#55480 #55480
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Er kanns sich ja aussuchen was er will.

Nacht!
havi
 2003-09-24 02:06
#55481 #55481
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Genau!

Gute Nacht!
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2003-09-24 01:19.