Schrift
[thread]6253[/thread]

Wieder mal Regex: Probleme..



<< >> 8 Einträge, 1 Seite
steinwolf
 2004-05-12 22:23
#82332 #82332
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
Tag,
mein Regex funktioniert nicht.

Code: (dl )
if($in =~/Fehler: Falsches Passwort/si)



Ich suche nach diesem String in einer HTML-Datei, und der sieht exakt so aus. Die ganze Zeile allerdings sieht so aus(man beachte die ganzen Leerschritte dahinter und davor. Ich vermute dortens auch meinen Fehler):

Code: (dl )
        Fehler: Falsches Passwort       </td>



mfg steinigen
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
Gast Gast
 2004-05-13 00:00
#82333 #82333
Probier mal:
Code: (dl )
$in =~ /Fehler\:\sFalsches\sPasswort/;
Taulmarill
 2004-05-13 00:29
#82334 #82334
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
wenn man nich weiss, welche sonderzeichen in regex besondere eigenschaften haben, kann man auch \Q und \E verwenden.

also $in =~ /\QFehler: Falsches Passwort\E/

da der regex nur nach einem pattern und nicht nach einer ganzen zeile sucht, gibt er bei der standartzeile auf jeden fall TRUE zurück, die leerzeichen sind ihm egal. es seie denn man definiert zeilenanfang und -ende mit ^ und $

RTFM: perldoc perlre\n\n

<!--EDIT|Taulmarill|1084393816-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
ronald
 2004-05-13 14:49
#82335 #82335
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
mein Testprogramm
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/local/bin/perl -w
use strict;
use Data::Dumper;

my $in = <<DATA
bla bla
Fehler: Falsches Passwort </td>
ende.
DATA
;

if ($in =~/Fehler: Falsches Passwort/si) {
print "found.\n";
}


Funktioniert.

Prüfe mal, ob die Variable $in auch den kompletten(?) HTML-Text enthält - oder ob nur eine Zeile drin ist.

In meinen CGI-Skripten mache ich das immer so:
Code: (dl )
1
2
3
4
5
use Data::Dumper;
...
print "<pre>\n";
print Dumper $in;
print "</pre>";


HTH
steinwolf
 2004-05-13 16:24
#82336 #82336
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
Hmm, danke für die Tipps..
Fehler nicht behoben, ich teil Euch mit, wenn ich den gefunden hab...
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
Taulmarill
 2004-05-13 17:49
#82337 #82337
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hm, wenn das alles nicht geholfen hat, dann würde ich den fehler mal wo anders suchen.
poste doch mal ein wenig mehr code.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
steinwolf
 2004-05-13 22:15
#82338 #82338
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
Hallo,
der Fehler ist aus unerklärlichen Gründen weg..*verwirrtdreinblick*
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
betterworld
 2004-05-14 00:42
#82339 #82339
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Eindeutig ein Heisenbug ;-)
<< >> 8 Einträge, 1 Seite



View all threads created 2004-05-12 22:23.