Thread Regulärer Ausdruck (22 answers)
Opened by IceRage at 2009-11-02 21:45

IceRage
 2009-11-02 22:16
#127673 #127673
User since
2008-09-07
93 Artikel
BenutzerIn
[default_avatar]
2009-11-02T21:02:51 Linuxer
"funktioniert leider nicht" ist eine Aussage ohne brauchbaren Informationsgehalt.
Wir wissen dadurch nicht, ob einfach nicht das gewünschte Ergebnis kommt,
ob ein falsches Ergebnis kommt, ob eine Warnung ausgeworfen wurde (und wenn ja, welche) oder ob ein Fehler gemeldet wurde (wenn ja, welcher?).
Also falsche Ergebnisse wünsche ich mir grundsätzlich nicht ^^. Du meinst, ob ein Fehler auftritt oder?


Folgendes steht in meinem ersten Posting. Mit "Aber das funktioniert leider nicht" meine ich, dass ([0-9]{1,6},[0-9]{1,3})$ nicht den gewünschten Effekt erzielt. Und welchen Effekt ich erzielen möchte, habe ich eindeutig beschrieben.
IceRage

Was ich nun damit erreiche, ist, dass der Erste Treffer hinter dem Datum in $1 steht (also 11,330). Ich möchte aber den letzten Treffer, den der Ausdruck ergeben würde in $1 stehen haben (also 14,330). Ich habe es schon mit ([0-9]{1,6},[0-9]{1,3})$ versucht. Aber das funktioniert leider nicht.


2009-11-02T21:02:51 Linuxer
Ausserdem gibst Du keine brauchbaren Code ab, den man analysieren könnte.
Du präsentierst zwar den Regex, aber nicht, wie Du diesen Regex einsetzt.
Wie schaut denn der Code drum herum aus?

Das wären so Informationen, die das Helfen erleichtern würden...



Den Code poste ich hier gern. Das soll nicht das Problem sein. Ich hielt das allerdings für nicht sonderlich relevant.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl

use LWP;
use LWP::Simple;
use HTTP::Headers;
use HTTP::Request;
use HTML::Form;
use strict;
use warnings;
use POSIX qw(ceil floor);

print "Hello, RequestedShareValuedWorld...\n";

my $ua = new LWP::UserAgent;
$ua->agent("MudGuard/1.0");

my $req = HTTP::Request->new("GET", "http://aktien.onvista.de/charts.html?ID_OSI=94352");
my $res = $ua->request($req);
my $site = $res->content;

my @forms = HTML::Form->parse($res);

$forms[3]->param('ID_NOTATION_SELECTED', '200958');
$forms[3]->param('DATE', '02.01.2008');
$req = $forms[3]->click();;
$res = $ua->request($req);

my $site = $res->content;

# keine ahnung warum mit ([0-9]{1,6},[0-9]{1,3})$ nicht der schlusskurz gefiltert werden kann.
# so ([0-9]{1,6},[0-9]{1,3}) kommt immer nur der eroffnungskurs. der schlusskurs wäre der 
# letzte treffer in site von hinten.

$site =~ /([0-9]{1,6},[0-9]{1,3})/s;
print $1;
# my @close_price = $site =~ m/(\d{1,6},\d{1,3})/gm;
# local $, = local $\ = $/;
# print @close_price."\n";

my $file = "test.html";

open(TEMP_FILE, ">$file");
print TEMP_FILE $site;
close(TEMP_FILE);

View full thread Regulärer Ausdruck