perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 21
Click for quality!




11.02.2012 / 22:39

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragProblem mit Regulären Ausdrück
Seitenanfang
Hi Leute,
kann mir jemand den Code erklären, bzw. die Ausgabewerte? Was bewirken die Klammern in $muster? Und was bewirkt @zahlen in der If-Anweisung??
Danke
Fraser

#!/usr//bin/perl -w

$muster = '(\d)\.([^\D])';
$text = 4.12;

if (@zahlen = $text =~ m/$muster/)
{print "(1) wahr: @zahlen\n";}
else
{print "(1) falsch: @zahlen\n";}

if (@zahlen = $text !~ m/$muster/)
{print "(2) wahr: @zahlen\n";}
else
{print "(2) falsch: @zahlen\n";}

$text = 4.0;
if (@zahlen = $text =~ m/$muster/)
{print "(3) wahr: @zahlen\n";}
else
{print "(3) falsch: @zahlen\n";}

if (@zahlen = $text !~ m/$muster/)
{print "(4) wahr: @zahlen\n";}
else
{print "(4) falsch: @zahlen\n";}

Datum: 02.12.2004-10:44

Beitragre: Problem mit Regulären Ausdrück
Seitenanfang
$muster = '(\d)\.([^\D])';
dieser Reguläre ausdruck bedeutet:
Finde ZIFFERN (\d) dann punkt (\.) und dann nicht keine Ziffern (\D) = keine Ziffer [^\D] nicht keine Ziffer
klingt komisch ist aber so.
@zahlen ist ein array mit namen zahlen
kein assoziatives array das wäre in perl ein sog. hash
also @zahlen ist ein skalares array
zu regulären Ausdrücken empfiehlt sich
http://de.selfhtml.org der Teil der sich mit Perl beschäftigt
die Struktur der if abfrage ist so gemeint:
@zahlen = $text;
wenn $text =~ ...
also zuweisung mit gleichzeitiger überprüfung mit regexp (regular expressions (reguläre Ausdrücke))

Auf alle angaben gibts keine Gewähr

Datum: 02.12.2004-11:49

Beitragre: Problem mit Regulären Ausdrück
Seitenanfang
bei
my $string = 'test 123 test';
my ($zahl) = $string =~ /(\d+)/;

/(\d+)/
Regulärer Ausdruck, der nach 1 oder mehreren Zahlen sucht (-> d+ ),
speichere das Gefundene in $<digit> (hier: $1) -> dafür werden die Klammern benötigt

$string =~ //
suche den Regulären Ausdruck in $string

my ($zahl) =
speichere die gefundene Zahl (die in $1 steht) in $zahl

Wenn Du mehrere Zahlen hättest, dann kann man auch ein Array nehmen:

my $string = 'test 123 test 456';
my @zahl = $string =~ /(\d+)/g;

Lesestoff:
http://regenechsen.de
perldoc perlretut
perldoc perlre
perldoc perlvar

Datum: 02.12.2004-12:32

Beitragre: Problem mit Regulären Ausdrück
Seitenanfang
Danke das hat mir echt weitergeholfen

Datum: 02.12.2004-14:06

Beitragre: Problem mit Regulären Ausdrück
Seitenanfang
Hi,

da könntest du einige Infos zu regulären Audrücken nachlesen.

http://de.selfhtml.org/cgiperl/sprache/regexpr.htm#allgemeines

gruß _mEMBEr_

Datum: 06.12.2004-13:25

-






-
-