Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Perl/CGI » Regulärer Ausdruck

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
02.02.2007, 14:49 Uhr
~ZumDummFürDieWelt
Gast


Hi,
ich glaube ich habe Heute einen ziemlich schlechten Tag. Ich versuche seid 5 Stunden einen Regulären ausdruck zu finden der mir aus einer zeichenkette genau 5 zahlen sucht.
Vor den Zahlen darf alles stehen, auch nichts.
nach den Zahlen darf auch alles stehe oder auch nichts.

Bsp:

Erlaubt:
dsds_12345_sd
12345
s12345ds
s12354
ds_12345ds23


nicht erlaubt

123456
ss1234564sds
123456sds
123
ss123
dd123456_444

Vielen dank fuer eure Hilfe!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.02.2007, 14:52 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)



Code:
m/.*?\d{5}.*?/

Hat mit ANSI C aber reichlich wenig zu tun -
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.02.2007, 14:54 Uhr
Pler
Einer von Vielen
(Operator)


also das geht. Bestimmt gehts noch kürzer ...

bash:
grep -P '(^|\D)\d{5}(\D|$)'


@J-j....
Das dürfte nicht das gesuchte sein.

Dieser Post wurde am 02.02.2007 um 14:55 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.02.2007, 14:56 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Klar gehts kürzer.
Code:
grep -P '\d{5}'

Ich seh keinen Unterschied zu deinem. Nur, das ich es eben in die Perl Notation gesetzt hab. Er sagte ja nicht, wo er es benötigt ...
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

Dieser Post wurde am 02.02.2007 um 14:58 Uhr von J-jayz-Z editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.02.2007, 15:04 Uhr
Pler
Einer von Vielen
(Operator)


grep -P ist ja auch Perl.
Aber deins findet auch 123456 oder ss1234564sds, was ja nciht erlaub ist.
Gesucht sind genau 5 Zahlen. Davor und danach MUSS ein anderes Zeichen (Buchstabe, Leerzeischen) oder ein Zeilenanfang/ende kommen.

Und was heißt .*?
speziell das Fragezeichen verstehe ich nicht.
Für mich heißt das: Ein beliebiges Zeichen. Das darf kein mal oder beliebig oft vorkommen. Und dann nochmal das Fragezeichen für 0 oder einmal.?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.02.2007, 15:27 Uhr
~ZumDummFürDieWelt
Gast


Vielen dank für euere Angagement. Wie es aussieht ist es echt nicht so leicht! Wie gesagt 5 std. und noch keine lösung
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.02.2007, 15:29 Uhr
Pler
Einer von Vielen
(Operator)


???
^
|
Da ist die Lösung!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.02.2007, 15:40 Uhr
~ZumDummFürDieWelt
Gast


???

Was ist die Lösung. Stehen glaube ich auf dem Schlauch!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.02.2007, 15:43 Uhr
Pler
Einer von Vielen
(Operator)


Also das geht auf jeden Fall:

Code:
grep -P '(^|\D)\d{5}(\D|$)'



test.txt:

dsds_12345_sd
12345
s12345ds
s12354
ds_12345ds23
123456
ss1234564sds
123456sds
123
ss123
dd123456_444


liefert:
> grep -P '(^|\D)\d{5}(\D|$)' test.txt
dsds_12345_sd
12345
s12345ds
s12354
ds_12345ds23
>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.02.2007, 16:35 Uhr
~ZumDummFürDieWelt
Gast


Wunderbar jetzt hab ich ich es verstanden. Funtzt jetzt wunderbar! Vielen dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Perl/CGI ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: