Regex um FHEM zu töten?!

Begonnen von Floriky, 17 Dezember 2020, 23:21:10

Vorheriges Thema - Nächstes Thema

amenomade

#15
Die habe ich auch auf 101 getestet... https://regex101.com/r/uAgKpr/1 und sogar in Fhem

Vielleicht liegt es daran: ich nutze die json URL
defmod Poferl HTTPMOD https://metzgerei-poferl.de/wp-json/wp/v2/pages 0
attr Poferl enableControlSet 1
attr Poferl enableCookies 1
attr Poferl reading01Name Montag
attr Poferl reading01Regex >Montag.*?<td.*?">(.*?)<.*?td.*?">(.*?)<
attr Poferl reading02Name Dienstag
attr Poferl reading02Regex >Dienstag.*?<td.*?">(.*?)<.*?td.*?">(.*?)<
attr Poferl reading03Name Mittwoch
attr Poferl reading03Regex >Mittwoch.*?<td.*?">(.*?)<.*?td.*?">(.*?)<
attr Poferl reading04Name Donnerstag
attr Poferl reading04Regex >Donnerstag.*?<td.*?">(.*?)<.*?td.*?">(.*?)<
attr Poferl reading05Name Freitag
attr Poferl reading05Regex >Freitag.*?<td.*?">(.*?)<.*?td.*?">(.*?)<


   READINGS:
     2020-12-23 13:05:34   Dienstag-1      Currywurst mit Pommes , deftige Curryso\u00dfe und dazu gemischten Blattsalat
     2020-12-23 13:05:34   Dienstag-2      Rahmgeschnetzeltes vom Kalb mit Beilagen Ihrer Wahl und ged\u00e4mpftem Gem\u00fcse
     2020-12-23 13:05:34   Donnerstag-1    Gyros-Pfanne mit Zwiebeln und Tzatziki, dazu hausgemachten Krautsalat
     2020-12-23 13:05:34   Donnerstag-2    gef\u00fcllte Rinderrouladen mit Beilagen Ihrer Wahl und Rotkraut
     2020-12-23 13:05:34   Freitag-1       Puten-Paprikagulasch mit\u00a0 Beilagen Ihrer Wahl, dazu gemischten Salat
     2020-12-23 13:05:34   Freitag-2       Wirtshausschnitzel mit Beilagen Ihrer Wahl und gemischtem Salat
     2020-12-23 13:05:34   Mittwoch-1      Allg\u00e4uer Pilzpfanne mit H\u00e4hnchenstreifen und gemischtem Blattsalat
     2020-12-23 13:05:34   Mittwoch-2      gef\u00fcllte Kohlrouladen mit Beilagen Ihrer Wahl und gemischtem Blattsalat
     2020-12-23 13:05:34   Montag-1        Kartoffel-Kassler-Auflauf
     2020-12-23 13:05:34   Montag-2        Paniertes Putenschnitzel mit Beilagen Ihrer Wahl und gemischtem Blattsalat
   
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Floriky

Zitat von: amenomade am 23 Dezember 2020, 13:04:35
Die habe ich auch auf 101 getestet... https://regex101.com/r/uAgKpr/1

Achso. Ja das war ja noch der Quellcode vom ersten Versuch. Habe nach dem Post von Christoph, dann https://metzgerei-poferl.de/aktuelle-mittagsmenues_blank als Quelle verwendet.

Zitat von: amenomade am 19 Dezember 2020, 02:45:22
Die Regex
(?:>Montag.*[\S\s]*?<td.*">?)(.*)(?:<\/.*>)
führt zu katastrophales Backtracking. Kein Wunder, dass FHEM abstürzt.

Verstehe ich das richtig, dass die vielen * die Kombinationsmöglichkeiten erhöhen und damit die Regex so schwer auswertbar machen?

amenomade

Das .* nach Montag ist schon tödlich: somit versucht er so viel wie möglich zu matchen, und macht dann backtracking, um den Rest zu matchen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus