Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8221[/thread]

Reg Ex Problem

Leser: 1


<< >> 8 Einträge, 1 Seite
honky
 2006-08-07 18:11
#68675 #68675
User since
2006-05-23
43 Artikel
BenutzerIn
[default_avatar]
Hallo.

Wer kann mir helfen:

Ich möchte die Versions nummer auslesen! (Unix)

Dazu setze ich zunächst den Befhel ab und schreibe das Ergebnis in eine Varibale:

Code: (dl )
my $vers = `man -V rsync`;


In der Varibale steht dann folgendes:

man, Version 2.4.1, 07 September 2001

Nun möchste ich mit reg ex die 2.4.1 in eine Variable schreiben lassen, in der dann nur noch 241 steht.

Code: (dl )
$vers = ($vers =~ /\d+/g);


So nun habe ich nicht nur das probiert sondern auch andere Varianten. Ich bekomme aber als Ergbnis überall nur 1 raus. Danke für eure Hilfe!

Honky\n\n

<!--EDIT|honky|1154959911-->
honky
 2006-08-07 18:25
#68676 #68676
User since
2006-05-23
43 Artikel
BenutzerIn
[default_avatar]
ok 1 steht scheinbar für true ^^ hehe. hätte ich auch selbst drauf kommen können.

habe das mal probiert:

Code: (dl )
my $vers = ($vers =~ s/\d+/\d+/);


klappt aber auch ned. bekomme wieder nur 1 zurück :( (hätte gedacht dann bekomme ich alle zahlen (durch ersetzten))
honky
 2006-08-07 18:31
#68677 #68677
User since
2006-05-23
43 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
($readVers =~ s/\d+/"bla"/g);


Jetzt ersetzt er mir schon mal alle Zahlen durch bla.

auch nich schlecht :)
lichtkind
 2006-08-07 18:33
#68678 #68678
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
vielleicht löst du es einfacher in dem du erstmal die version (das wort nach Version /Version (\w+)/). die hast dann in $1 und dann extrahierst mit einem tr die punkte tr/.//d (oder so).
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
renee
 2006-08-07 18:36
#68679 #68679
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
my $string = 'man, Version 2.4.1, 07 September 2001';
my ($version) = $string =~ /Version ([\d\.]+)/;
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/
honky
 2006-08-07 18:51
#68680 #68680
User since
2006-05-23
43 Artikel
BenutzerIn
[default_avatar]
danke renee.

ich bekomme jetzt 2.4.1 raus. Wie bekommt man gleich noch punkte weg? wenn ich das /. wegnehme bleibt nur ne 2 stehen :)

habs so gemacht:

Code: (dl )
1
2
my ($version) = $readVers =~ /Version ([\d\.]+)/;
$version =~ s/\.//g;
\n\n

<!--EDIT|honky|1154962458-->
topeg
 2006-08-08 00:12
#68681 #68681
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code: (dl )
( my $version = $readVers ) =~ s/^.*?(\d+)\.(\d+)\.(\d+).*$/$1$2$3/s;

so geht es mit einer Zeile :-)
honky
 2006-08-08 11:27
#68682 #68682
User since
2006-05-23
43 Artikel
BenutzerIn
[default_avatar]
cool! hab ich gleich ma genommen :) Einzeiler sind halt schick!
<< >> 8 Einträge, 1 Seite



View all threads created 2006-08-07 18:11.