Hi,
ich versuche per HTTPMOD den DAX in Punkten (PKT) und die Veränderung in % auf finanzen.net (https://www.finanzen.net/index/dax/charttool (https://www.finanzen.net/index/dax/charttool)) auszuwerten.
Die PKT klappen, leider matched die reading02Regex "(([+-]?\d+\,\d+)$\s.*\s.*\%)" für die Auslesung der Veränderung in % laut verbose-Log nicht, obwohl die Regex in Regex101.com funktioniert und matched.
Jemand eine Idee woran das liegen kann?
Anbei meine Konfig:
defmod httpmod_finanzen_dax HTTPMOD https://www.finanzen.net/index/dax/charttool 900
attr httpmod_finanzen_dax enableCookies 0
attr httpmod_finanzen_dax event-on-change-reading dax
attr httpmod_finanzen_dax reading01Name dax
attr httpmod_finanzen_dax reading01OExpr $val =~ s/\.//g;; $val =~ s/\,/./g;; $val ## 1.) Entfernung des Tausendertrennzeichens, 2.) Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading01Regex (\d+\.\d+\,\d+).*
attr httpmod_finanzen_dax reading02Name dax_perc
attr httpmod_finanzen_dax reading02OExpr $val =~ s/\,/./g;;;; $val =~ s/\+//g;;;; $val ## Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading02Regex ([+-]?\d+\,\d+)$\s.*\s.*\%
attr httpmod_finanzen_dax requestHeader User-Agent: Wget/1.20.1 (linux-gnueabihf)
Zitatattr httpmod_finanzen_dax reading02Regex ([+-]?\d+\,\d+)$\s.*\s.*\%
Das Dollarzeichen ist dort auf jeden Fall fehl am Platz.
Wenn man das herausnimmt gibt es sicherlich ein Match.
Gruß
Dan
danke, aber leider weiterhin kein match:
2023.03.18 11:40:49.474 5: httpmod_finanzen_dax: ExtractReading dax_perc with regex (?^m:([+-]?\d+\,\d+)\s.*\s.*\%) and options gm ...
2023.03.18 11:40:49.691 5: httpmod_finanzen_dax: ExtractReading dax_perc did not match
Auch nicht wenn ich noch gm als RegOpts hinzugefügt habe:
attr httpmod_finanzen_dax reading02RegOpt gm
Aber was ich nicht verstehe: Warum matched dann reg101.com mit der gleichen RegEx (siehe https://regex101.com/r/rPiiQ9/1 (https://regex101.com/r/rPiiQ9/1))?
Evtl. liegt es noch an den Escapes von , und % ?
Soweit ich weiß müssen diese nicht escaped werden, oder haben die eine spezielle Bedeutung in RegEx?
Gruß
Dan
Danke, aber leider auch ohne die Escapes kein Match...
Ob jetzt fachmännisch gelöst bezweifel ich, aber es tut und es gibt jeweils nur ein Match, keine zwei:
defmod httpmod_finanzen_dax HTTPMOD https://www.finanzen.net/index/dax/charttool 900
attr httpmod_finanzen_dax enableCookies 0
attr httpmod_finanzen_dax event-on-change-reading dax
attr httpmod_finanzen_dax reading01Name dax
attr httpmod_finanzen_dax reading01OExpr $val =~ s/\.//g;; $val =~ s/\,/./g;; $val ## 1.) Entfernung des Tausendertrennzeichens, 2.) Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading01Regex snapshot-value-fst-current-0[\w\W\n]*?(\d+\.\d+\,\d+)
attr httpmod_finanzen_dax reading02Name dax_perc
attr httpmod_finanzen_dax reading02OExpr $val =~ s/\,/./g;; $val =~ s/\+//g;; $val ## Umwandlung des Dezimalkommas in Dezimalpunkt
attr httpmod_finanzen_dax reading02Regex snapshot-value-fst-absolute-0[\w\W\n]*?(\d+\,\d+)
attr httpmod_finanzen_dax requestHeader User-Agent: Wget/1.20.1 (linux-gnueabihf)
setstate httpmod_finanzen_dax 2023-03-18 13:54:27 dax 14762.67
setstate httpmod_finanzen_dax 2023-03-18 13:54:27 dax_perc 204.43
Ahh, vielen Dank!
Etwas angepasst, aber die Regex "snapshot-value-fst-relative-0[\w\W\n]*?([+-]?\d+\,\d+)" funktioniert!