Schrift
[thread]8068[/thread]

Prozentzeichen in Suchstring: Wie bekomme ich %-Zeichen gesucht ?



<< >> 6 Einträge, 1 Seite
Schmiddy
 2006-06-08 18:37
#67124 #67124
User since
2006-06-08
3 Artikel
BenutzerIn
[Homepage] [default_avatar]
Moinsens,

Lese den HTML-Code einer WebSeite wie folgt aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
my $ua = new LWP::UserAgent;
my $req = new HTTP::Request 'GET' => "http://www.url.de";
my $res = $ua->request($req);

if ($res->is_success) {
print "hat geklappt";
} else {
$rueckgabe = "Error: URL not found"; exit;
}


kopiere den Inhalt in eine Variable:
Code: (dl )
my $WebSeite = $res->content;

und möchte nun innerhalb der Variablen $WebSeite ein Prozentzeichen suchen und die Position innerhalb der WebSeite ausgeben. Wie mache ich das ?

Sorry, bin Neuling. So dachte ich mir das:
Code: (dl )
1
2
3
4
5
my $Suchvariable = "%";

if ($WebSeite =~ /$Suchvariable/g) {
$Treffer = pos($WebSeite);
}

Aber das funktioniert natürlich nicht (gibt endlos Daten aus). Kann mir bitte jemand helfen ? Das Beschicken der Variablen $Suchstring mit "\%" brachte leider auch nichts :o(

1000 Dank.

Grüßle: Lars

http://www.ghia-home.de\n\n

<!--EDIT|renee|1149784813-->
esskar
 2006-06-08 18:46
#67125 #67125
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
my $pos = index($WebSeite, "%");
if($pos > -1) {
print "Position: $pos\n";
print "Data: [" . substr($WebSeite, $pos) . "]\n";
}

hth, esskar
Schmiddy
 2006-06-08 18:56
#67126 #67126
User since
2006-06-08
3 Artikel
BenutzerIn
[Homepage] [default_avatar]
hai,

klingt gut, hilft aber - glaube ich - nicht 100% weiter. ich muss der reihe nach alle %-zeichen in der seite abklappern. also der reihe nach die seite durchgehen, bei jedem %-zeichen anhalten, den wert davor auslesen, weitersuchen bis zum nächsten %-zeichen, anhalten, wieder den wert davor auslesen etc. deswegen der umweg über:

if ($WebSeite =~ /$Suchvariable/g) {
$Treffer = pos($WebSeite);
}

hast du noch einen code-schnippsel auf lager, um der reihe nach durchzugehen ? das wäre super.

vielen dank schon einmal für deine super schnelle antwort :o)

gruß: schmiddy :o)
pq
 2006-06-08 19:00
#67127 #67127
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also hier funktioniert das ganz wunderbar mit der regex:
Code: (dl )
1
2
3
4
5
6
7
8
9
$ perl -wle'
my $page = "foo % bar % baz % end";
my $re = "%";
while ($page =~ m/$re/go) {
print pos $page
}'
5
11
17
\n\n

<!--EDIT|pq|1149778838-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Schmiddy
 2006-06-08 19:07
#67128 #67128
User since
2006-06-08
3 Artikel
BenutzerIn
[Homepage] [default_avatar]
hai,

danke für die info. ich teste daheim noch einmal. habe dann vermutlich an anderer stelle einen fehler gemacht.

merci :o) grüße: lars
esskar
 2006-06-08 19:20
#67129 #67129
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hier mit index

Code: (dl )
1
2
3
4
my $pos = -1;
while(($pos = index($WebSeite, "%", $pos+1)) > -1) {
print "Position: $pos\n";
}
<< >> 6 Einträge, 1 Seite



View all threads created 2006-06-08 18:37.