String parsen

Status
Nicht offen für weitere Antworten.

gauo

Mitglied
Hallo, ich hab eigentlich mehr oder weniger ein einfaches problem, wo ich aber leider
mit meiner Lsg, wegen mangelnder Erfahrung nicht weiter komme,
danke für jede hilfe ^^.

Ich möchte einen String nach zwei Informationen parsen z.B:
<TR class="data"><TD ALIGN=RIGHT>1.</TD><TD><A HREF="search.pl?isin=DE0008402215&
typnr=3">Hannover Rück</A></TD><TD ALIGN=RIGHT><FONT COLOR="#00a000">+6.67</font></TD><TD
ALIGN=RIGHT><FONT COLOR="#00a000">+2.54</font></TD><TD ALIGN=RIGHT>akkumulieren (75) /pics/buy.gif</TD></TR>
Die Informationen die ich extrahieren will sind die isin nud der name.
split("<A HREF=\"search\\.pl?isin=[\\w*]&typnr=3\"") auf diesen String, liefert
mir jedoch einfach nur den String zurück.

Ich hoffe ihr könnt mir helfen ob es eine bessere methode gibt als split um an die informationen zu kommen, aber auf jedenfall was ich falsch gemacht hab beim ausdruck meines regex,
nochmals danke für jede hilfe ^^-
 
ich habs mitlerweile mit
Code:
                                                    int anfang =line.indexOf("<A HREF=\"search")+24;
                                                    int ende = line.indexOf("&typnr=3\"");
                                                    int endOfName = line.indexOf("</A>");
                                                    String isin =line.substring(anfang, ende);
                                                    String name = line.substring(ende+10,endOfName);
                                                    System.out.println(isin);
                                                    System.out.println(name);
                                                    System.out.println(line);
alternativ gelöst, wer aber trotzdem toll wenn mir wer ne lösung mit regex zeigt ^^, thx
 
Code:
"<[A|a][^<>]*[HREF|href]\\p{Space}*=\\p{Space}*[\"|']search\\.pl\\?(?:[^\"']*&)?isin=([^&\"']*)[^<>]*>([^<>]*)</[a|A]>"
:bae:

edit: den witz hab ich mal wegeditiert^^
 
Jaa, ich bin eigentlich von genau dieser lösung ausgegangen, und hab die noch ein wenig ergänzt & verbessert.
Dieser Regex reagiert etwa immer noch adequat, wenn die reihenfolge der parameter im get-request vertauscht wird, ansonsten kann es wegen solchen kleinigkeiten recht schnell schiefgehen.

@OP: bastelst du dir grad irgendeinen spider?
Würde mal zur Übung ganz gerne auch endlich mal so ein ding basteln, nur weiß ich nicht, nach welchen sinnvollen sachen ich suchen könnte. ???:L wäre eigentlich schon interessant sowas...
 
thx an euch beide un besonders aundrey ^^ hab ganz vergessen das code blocks die formatierung beibehalten,was
hier ja mehr oder weniger schlecht ist ^^.

@Topic, hm...ich blick noch nicht ganz durch deinen Regex, aber er liefert mir z.b das hier zurück:
Erst die Beiden Elemente des Arrays von split und dann die ganze zeile:


Split:<TR class="data"><TD ALIGN=RIGHT>1.</TD><TD>
Split:</TD><TD ALIGN=RIGHT><FONT COLOR="#ff0000">-8.25</font></TD><TD ALIGN=RIGHT><FONT COLOR="#00a000">+2.02</font></TD><TD ALIGN=RIGHT>akkumulieren (70) /pics/buy.gif</TD></TR>

Line:<TR class="data"><TD ALIGN=RIGHT>1.</TD><TD>Kuka</TD><TD ALIGN=RIGHT><FONT COLOR="#ff0000">-8.25</font></TD><TD ALIGN=RIGHT><FONT COLOR="#00a000">+2.02</font></TD><TD ALIGN=RIGHT>akkumulieren (70) /pics/buy.gif</TD></TR>


Weshalb ich das alles mache ist eigentlich im moment selbst noch fragwürdig ^^.
An sich will ich erstmal eine Art tool, das einige definierte Seiten nach Analysen, Narchichten oder prognosen
Abklappert und mir diese pro Aktie zusammenfast mit speziellen gewichtungen etc. und mich bei veränderungen benachrichtigt und auf dem Laufenden hält, durch z.b ein Popup aus dem SystemTray.
Unter umständen will ich für mich vielleicht dann die Simulation eines Depots einbauen.

Ich will eventuell bald an der börse einsteigen und wollt mal testen in weit man mit dem halbwegs sturen befolgen von Prognosen, Analysen, empfehlungen und reagieren auf gute Nachrichten(keine ahnung wie ich das machen will)
kommen kann. Wahrscheinlich eher weniger und nur bei großen stückzahlen, da sonst die gebühren überhand nehmen und ich auch allgm an den Prognosen zweifle...zummindest im moment ist es deutlich konfuser und nur schwer gewinn zu machen(hohes risiko :/)
 
wieso split!? Dieser Regex ist nicht zum splitten, der ist zum suchen nach den tags und zum rauslesen der informationen:

Code:
//das soll dein html-code sein:
String html=
"<A HREF=\"search.pl?isin=DE0008402215&typnr=3\">Hannover Rück</A><a href =\t\"search.pl?typnr=3&isin=HELL666\">Hannover Pullover</a>";

//dann erstelst du dir einen matcher:
Matcher m=Pattern.compile(
"<[A|a][^<>]*[HREF|href]\\p{Space}*=\\p{Space}*[\"|']search\\.pl\\?(?:[^\"']*&)?isin=([^&\"']*)[^<>]*>([^<>]*)</[a|A]>"
).matcher(html);

//und suchst nach treffern:
while(m.find()) System.out.println("treffer="+m.group(0)+"\t isin="+m.group(1)+"\t inhalt="+m.group(2));

läuft bombensicher.
 
thx, hab da was verwechselt oda so weiss net mehr ^^...
aber ich hab auch ne neue frage :/...
wie kann ich das was mir javascript beim browser liefert auslesen?...
so bekomm ich ja nur den Quellcode, aber nicht was angezeigt wird oder? :/
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben