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



#!/COMMUNITY

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




11.02.2012 / 07:42

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


Beitragsyntax
Seitenanfang
hi,

habe folgendes problem:

$i=0;
$suchstr="hallo";
while ( $liste[$i] =~ m/$suchstr/ ) {
$i++;
}

da in der pruefung regular expression geprueft wird, wird das $-zeichen als ende der zeile und nicht als variable interpretiert. ich muss irgendiwe noch ein eval auf den $suchstr durchfuehren, aber wie?

danke fuer die hilfe.

Pixer.

Datum: 30.08.2006-14:29

Beitragre: syntax
Seitenanfang
Hallo

Das ist Unsinn.
In deinem Code prüfst du ob der erste Wert in @liste $suchstr enthält.
Wenn dem so wäre würde dann für $liste[1] geprüft, wenn nicht dann hast du die Endlos-Schleife auf $liste[0] die nie matched.

Gruss Kristian

Datum: 30.08.2006-15:48

Beitragre: syntax
Seitenanfang
natuerlich ist das nur ein ausschnitt aus etwas komplexeren code. es geht hier nicht um sin/unsinn des code-ausschnittes sondern einfach um die syntax in der einen entscheidenden zeile.

ideen?

Pixar

Datum: 30.08.2006-16:17

Beitragre: syntax
Seitenanfang
Hallo

Die "entscheidenden zeile" ist also:

while ( $liste[$i] =~ m/$suchstr/ )

Ich habe dir doch eben erklärt, was diese Zeile macht.
$suchstr wird sehr wohl interpoliert, sprich die Suche funktioniert.

Ich hätte:

while ( $liste[$i] =~ m/\Q$suchstr\E/ )
geschrieben, aber das ist ja nicht der Grund, warum es nicht so funktioniert wie du denkst.

Entweder dein Code-Beispiel hat nichts mit deinem Problem zu tuen oder du weigerst dich einfach die Augen aufzumachen.

Poste doch mal den Code um den es wirklich geht in sinnvollem Zusammenhang, dann brauchen wir keine "Ideen".

Gruss Kristian

Datum: 30.08.2006-22:30

Beitragre: syntax
Seitenanfang
du hast recht! die suche funktioniert.


$satz="Hallo wie gehts";
$s="ht";
if($satz =~ m/s$/) - prueft ob am ende von $satz ein "s" vorkommt
if($satz =~ m/$s/) - prueft ob "ht" in $satz vorkommt

ich dachte, dass die zweite methode aufgrund der besonderen bedeutung von $ in regexpr nicht gehen wuerde. mea culpa.

danke und gruss,
Pixer

Datum: 31.08.2006-11:29

Beitragre: syntax
Seitenanfang
Hallo,

was macht hier \Q und \E ?

Clausi

Datum: 31.08.2006-11:37

Beitragre: syntax
Seitenanfang
Hallo

> was macht hier \Q und \E

Es quoted (maskiert) Sonderzeichen wie z.B. das /
Ohne machen dir Begriffe die Sonderzeichen enthalten, die in der Regex eine Bedeutung haben, die Regex kaput

Gruss Kristian

Datum: 31.08.2006-12:39

-






-
-