FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Floriky am 17 Dezember 2020, 23:21:10

Titel: Regex um FHEM zu töten?!
Beitrag von: Floriky am 17 Dezember 2020, 23:21:10
Hallo Zusammen,

bitte entschuldigt den reißerischen Titel. Wage mich gerad an das Thema HTTPMOD und wollte als Übungsaufgabe die Wochenkarte des ortsansässigen Metzgers auslesen.

Ein List des Devices:

defmod Poferl HTTPMOD https://metzgerei-poferl.de/wp-json/wp/v2/pages 20000
attr Poferl DbLogExclude .*
attr Poferl enableControlSet 1
attr Poferl enableCookies 1
attr Poferl reading01JSON 01_content_rendered
attr Poferl reading01Name 01_content_rendered

setstate Poferl 2020-12-17 23:17:16 01_content_rendered <h1>Unser Speiseplan</h1>\
<h1>vom Mo.14.12.2020 bis Fr.25.12.2020.</h1>\
<p>Ab Montag, den 02.11.2020 dürfen wir auf Grund der aktuellen Lage nur noch</p>\
<p>Essen zum mitnehmen anbieten. Der Verzehr in unseren Räumlichkeiten ist</p>\
<p>NICHT gestattet !! Wir bitten um Ihr Verständnis und liefern natürlich auch</p>\
<p>ohne Aufpreis zu Ihnen nach Hause, oder in die Firma.</p>\
<table style="width: 100%;; height: 1010px;;">\
<thead>\
<tr style="height: 105px;;">\
<th style="width: 17.2414%;; height: 105px;;"></th>\
<th style="width: 39.6552%;; height: 105px;;">\
<h2>Menü 1</h2>\
<p><span style="color: #cc0000;; font-size: x-large;;">€ 5,75</span></th>\
<th style="width: 42.931%;; height: 105px;;">\
<h2>Menü 2</h2>\
<p><span style="color: #cc0000;; font-size: x-large;;">€ 6,75</span></th>\
</tr>\
</thead>\
<tbody>\
<tr style="height: 68px;;">\
<th style="width: 17.2414%;; height: 68px;;">Montag 14.12.</th>\
<td style="width: 39.6552%;; height: 68px;;">Kartoffel-Kassler-Auflauf</p>\
<p>mit gemischtem Blattsalat</td>\
<td style="width: 42.931%;; height: 68px;;">Paniertes Putenschnitzel mit Beilagen Ihrer Wahl und gemischtem Blattsalat</td>\
</tr>\
<tr style="height: 118px;;">\
<th style="width: 17.2414%;; height: 118px;;" bgcolor="#585858">Dienstag 15.12.</th>\
<td style="width: 39.6552%;; height: 118px;;" bgcolor="#585858">Currywurst mit Pommes , deftige Currysoße und dazu gemischten Blattsalat</td>\
<td style="width: 42.931%;; height: 118px;;" bgcolor="#585858">Rahmgeschnetzeltes vom Kalb mit Beilagen Ihrer Wahl und gedämpftem Gemüse</td>\
</tr>\
<tr style="height: 121px;;">\
<th style="width: 17.2414%;; height: 121px;;">Mittwoch 16.12.</th>\
<td style="width: 39.6552%;; height: 121px;;">Allgäuer Pilzpfanne mit Hähnchenstreifen und gemischtem Blattsalat</td>\
<td style="width: 42.931%;; height: 121px;;">gefüllte Kohlrouladen mit Beilagen Ihrer Wahl und gemischtem Blattsalat</td>\
</tr>\
<tr style="height: 119px;;">\
<th style="width: 17.2414%;; height: 119px;;" bgcolor="#585858">Donnerstag 17.12.</th>\
<td style="width: 39.6552%;; height: 119px;;" bgcolor="#585858">Gyros-Pfanne mit Zwiebeln und Tzatziki, dazu hausgemachten Krautsalat</td>\
<td style="width: 42.931%;; height: 119px;;" bgcolor="#585858">gefüllte Rinderrouladen mit Beilagen Ihrer Wahl und Rotkraut</td>\
</tr>\
<tr style="height: 95px;;">\
<th style="width: 17.2414%;; height: 95px;;">Freitag 18.12.</th>\
<td style="width: 39.6552%;; height: 95px;;">Puten-Paprikagulasch mit  Beilagen Ihrer Wahl, dazu gemischten Salat</td>\
<td style="width: 42.931%;; height: 95px;;">Wirtshausschnitzel mit Beilagen Ihrer Wahl und gemischtem Salat</td>\
</tr>\
</tbody>\
<tbody>\
<tr style="height: 25px;;">\
<th style="width: 17.2414%;; height: 25px;;" bgcolor="#FF0040"></th>\
<td style="width: 39.6552%;; height: 25px;;" bgcolor="#FF0040"></td>\
<td style="width: 42.931%;; height: 25px;;" bgcolor="#FF0040"></td>\
</tr>\
<tr style="height: 77px;;">\
<th style="width: 17.2414%;; height: 77px;;">Montag 21.12.</th>\
<td style="width: 39.6552%;; height: 77px;;">Gemüsereispfanne mit Hähnchenstreifen und gemischtem Salat</td>\
<td style="width: 42.931%;; height: 77px;;">Paniertes Seelachsfilet mit Remouladensoße, Beilagen Ihrer Wahl und gemischtem Blattsalat</td>\
</tr>\
<tr style="height: 77px;;">\
<th style="width: 17.2414%;; height: 77px;;" bgcolor="#585858">Dienstag 22.12.</th>\
<td style="width: 39.6552%;; height: 77px;;" bgcolor="#585858">Tortellini "; Carbonara"; , dazu gemischten Salat</td>\
<td style="width: 42.931%;; height: 77px;;" bgcolor="#585858">Hähnchenbrustfilet in Sahnesoße, Beilagen Ihrer Wahl und Rahmgemüse</td>\
</tr>\
<tr style="height: 77px;;">\
<th style="width: 17.2414%;; height: 77px;;">Mittwoch 23.12.</th>\
<td style="width: 39.6552%;; height: 77px;;">Gulaschtopf mit Fleisch&amp;;Wurststückchen, dazu gemischten Blattsalat</td>\
<td style="width: 42.931%;; height: 77px;;">Krustenbraten aus dem Backofen, Beilagen Ihrer Wahl und gemischtem Blattsalat</td>\
</tr>\
<tr style="height: 51px;;">\
<th style="width: 17.2414%;; height: 51px;;" bgcolor="#585858">Donnerstag 24.12.</th>\
<td style="width: 39.6552%;; height: 51px;;" bgcolor="#585858">Heiligabend</td>\
<td style="width: 42.931%;; height: 51px;;" bgcolor="#585858">Heiligabend</td>\
</tr>\
<tr style="height: 77px;;">\
<th style="width: 17.2414%;; height: 77px;;">Freitag 25.12.</th>\
<td style="width: 39.6552%;; height: 77px;;">1. Weihnachtsfeiertag</td>\
<td style="width: 42.931%;; height: 77px;;">1. Weihnachtsfeiertag</td>\
</tr>\
</tbody>\
</table>\




Sobald ich das Attribut
attr Poferl reading01Regex (?:>Montag.*[\S\s]*?<td.*">?)(.*)(?:<\/.*>)

abspeicehre und ein reread durchführe hängt sich fhem auf. Kann mir jemand sagen was ich falsch machen?


Vielen Dank vorab und bleibt gesund!
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Christoph Morrison am 18 Dezember 2020, 08:13:13
Was steht denn im Log?
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: ch.eick am 18 Dezember 2020, 08:15:18
Moin,
ich habe mir nur das html angesehen und stochere man im Nebel.
Eventuell könnten die ";;" Schwierigkeiten machen?
Hast Du die Regex bei den bekannten Diensten im Netz mal getestet?
Gruß
   Christian
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: yersinia am 18 Dezember 2020, 09:09:05
Ja, das kann passieren wenn man RegEx unklug setzt. ;)

Aber der Link (https://metzgerei-poferl.de/wp-json/wp/v2/pages) erzeugt doch ein JSON, wäre dann das JsonMod Modul (https://forum.fhem.de/index.php/topic,109398.0.html) (weitere Beispiele (https://forum.fhem.de/index.php/topic,111489.0.html)) vielleicht eher geeignet für dich?
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Christoph Morrison am 18 Dezember 2020, 09:31:08
Ich würde das ja, um nur die Nutzdaten (das Menü) zu beziehen, XPath statt RegEx nehmen. Mit JsonMod bekäme man auch erstmal nur das gesamte Menü, da die Daten ja an sich nur unstrukturiert vorliegen und darauf dann JsonPath nicht funktioniert.

Der vom OP verwendete Regex performt auch nicht wirklich gut, 380ms mit etwa 6000 Steps ist ordentlich.
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 18 Dezember 2020, 16:43:07
Hallo Zusammen, erstmal vielen Dank für eure Hilfe!

Zitat von: Christoph Morrison am 18 Dezember 2020, 08:13:13
Was steht denn im Log?

Außer
2020.12.18 00:26:22 3: Poferl: Read callback: Error: read from https://metzgerei-poferl.de:443 timed out
2020.12.18 00:26:22 1: Connection refused from 192.168.2.130:53812


leider nicht viel, Christoph.


Zitat von: ch.eick am 18 Dezember 2020, 08:15:18
Moin,
ich habe mir nur das html angesehen und stochere man im Nebel.
Eventuell könnten die ";;" Schwierigkeiten machen?
Hast Du die Regex bei den bekannten Diensten im Netz mal getestet?
Gruß
   Christian

Hallo Christian, ja habe ich und da hat das problemlos funktioniert. Wenn ich nur Teile der Regex nehme, klappt das alles wunderbar aber nicht die gesamte.


Zitat von: yersinia am 18 Dezember 2020, 09:09:05
Ja, das kann passieren wenn man RegEx unklug setzt. ;)

Aber der Link (https://metzgerei-poferl.de/wp-json/wp/v2/pages) erzeugt doch ein JSON, wäre dann das JsonMod Modul (https://forum.fhem.de/index.php/topic,109398.0.html) (weitere Beispiele (https://forum.fhem.de/index.php/topic,111489.0.html)) vielleicht eher geeignet für dich?

Hallo yersinia, ja werde mir mal das näher anschauen. Habe bisher mit beiden Modulen wenig bis keine Erfahrung. Aber vielen Dank schonmal!


Zitat von: Christoph Morrison am 18 Dezember 2020, 09:31:08
Ich würde das ja, um nur die Nutzdaten (das Menü) zu beziehen, XPath statt RegEx nehmen. Mit JsonMod bekäme man auch erstmal nur das gesamte Menü, da die Daten ja an sich nur unstrukturiert vorliegen und darauf dann JsonPath nicht funktioniert.

Der vom OP verwendete Regex performt auch nicht wirklich gut, 380ms mit etwa 6000 Steps ist ordentlich.

Hallo Christoph, werde ich versuchen. Mal sehen wie weit ich komme. Erstmal vielen Dank!



Zitat von: Jamo am 18 Dezember 2020, 09:41:57
Hallo Floriky,
ich habe exact das von Dir beschriebene Verhalten (fhem hängt, der Perl prozess ist bei 100%) auch schon mal bei einem von mir verwendetem HTTPMOD für das Fernsehprogramm von Hoerzu.de gehabt. Direkt nach einem reread hat fhem sich wiederholbar aufgehängt. Geholfen hat dann nur die Source deiner Seite auf 101.regexp.com zu kopieren, und die Regexp vollstaendig zu checken. Ohne das ich es probiert habe: Du kannst mal probieren, das [\S*\s*]*? durch \X*? zu ersetzen. Gruss, Jamo

Danke für den Tipp, Jamo. Habe die Regex auf 101.regexp.com zusammengebaut. Und dort funktioniert sie (zumindest mit dem Text aus meinem Reading 01_content_rendered sehr gut. Das Austauschen werde ich gleich mal Testen! Vielen Dank!
EDIT: Also der Tauschen von [\S*\s*]*? durch \X*? bringt leider nichts. Fhem stürzt immer noch ab. 


Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 18 Dezember 2020, 17:11:46
Also so langsam glaube ich, das liegt an der geladenen JSON. Denn auch mit dem JsonMod- Modul habe ich die selben Probleme. Würde es einen besseren Weg geben die Tabelle mit Tagesgerichten von der Webseite zu bekommen. Hatte den Link auf die JSON aus einem Javascript über das Devtool von Chrome.
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 18 Dezember 2020, 17:32:42

Zitat von: Christoph Morrison am 18 Dezember 2020, 09:31:08
Ich würde das ja, um nur die Nutzdaten (das Menü) zu beziehen, XPath statt RegEx nehmen. Mit JsonMod bekäme man auch erstmal nur das gesamte Menü, da die Daten ja an sich nur unstrukturiert vorliegen und darauf dann JsonPath nicht funktioniert.

Verstehe aktuell nicht wie hier den XPath zu bauen habe. Geht das überhaupt mit dem HTML-Code?
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Christoph Morrison am 18 Dezember 2020, 17:42:56
Zitat von: Floriky am 18 Dezember 2020, 17:11:46
Also so langsam glaube ich, das liegt an der geladenen JSON. Denn auch mit dem JsonMod- Modul habe ich die selben Probleme. Würde es einen besseren Weg geben die Tabelle mit Tagesgerichten von der Webseite zu bekommen. Hatte den Link auf die JSON aus einem Javascript über das Devtool von Chrome.

Ja, XPath auf die HTML-Quelle (https://metzgerei-poferl.de/aktuelle-mittagsmenues_blank). Welche Daten genau willst du denn beziehen?

In //article/h1[2] findest du z.B. die Gültigkeit,
unter //article/table/tbody[1]/tr[1]/th dann Montag 14.12.
usw.

Das Developer-Menü in Chrome liefert dir im Prinzip jeden XPath.


2020.12.18 00:26:22 3: Poferl: Read callback: Error: read from https://metzgerei-poferl.de:443 timed out
2020.12.18 00:26:22 1: Connection refused from 192.168.2.130:53812


Bitte setze mal

attr global verbose 5
attr global stacktrace 1
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 18 Dezember 2020, 18:10:09
Zitat von: Christoph Morrison am 18 Dezember 2020, 17:42:56

Bitte setze mal

attr global verbose 5
attr global stacktrace 1



Also habs mal für dich durlaufen lassen. Lustigerweise hat er sich nicht dabei aufgehängt. Am Ende des Ausschnitts sieht man aber, dass zwischen den beiden Einträgen fast 2 Minuten liegen. Der Ausschnitt ist zu lang. Häng ihn als Datei mit an.

Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 18 Dezember 2020, 18:18:54
Zitat von: Christoph Morrison am 18 Dezember 2020, 17:42:56
Ja, XPath auf die HTML-Quelle (https://metzgerei-poferl.de/aktuelle-mittagsmenues_blank). Welche Daten genau willst du denn beziehen?

In //article/h1[2] findest du z.B. die Gültigkeit,
unter //article/table/tbody[1]/tr[1]/th dann Montag 14.12.
usw.

Das Developer-Menü in Chrome liefert dir im Prinzip jeden XPath.

Also wenn ich den XPath so speichere, bekomme ich kein Reading. Das Prinzip hat sich mir jedoch jetzt erschlossen. Dafür schonmal vielen Dank. Du meinst im DevTool dann wahrscheinlich den normalen "HTML-Baum" unter "Elements".  Oder?

Hier mal ein List mit XPath:
defmod Poferl HTTPMOD https://metzgerei-poferl.de/aktuelle-mittagsmenues_blank 20000
attr Poferl DbLogExclude .*
attr Poferl enableControlSet 1
attr Poferl enableCookies 1
attr Poferl enableXPath 1
attr Poferl reading01Name 01_content_rendered
attr Poferl reading01XPath //article/table/tbody[1]/tr[1]/th




Mit deiner HTML-Quelle funktioniert aber die Regex auch einwandfrei. Wie bist du auf diese "Blank-Url" gekommen?
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Christoph Morrison am 18 Dezember 2020, 18:43:42
Zitat von: Floriky am 18 Dezember 2020, 18:18:54
Also wenn ich den XPath so speichere, bekomme ich kein Reading.

Ich habe die Ausdrücke gerade noch mal mit einer Kopie deines HTTPMOD-Devices versucht und ja, ich bekomme da auch kein Reading. Erstmal läuft die Seite ständig in einen Timeout, zweitens scheint mein XPather mit dem defekten Quelltext vom Poferl nicht klar zu kommen. Schade.

ZitatDas Prinzip hat sich mir jedoch jetzt erschlossen. Dafür schonmal vielen Dank. Du meinst im DevTool dann wahrscheinlich den normalen "HTML-Baum" unter "Elements".  Oder?

Wenn du einen Kontext-Klick (also rechts z.B.) auf ein Element machst, kannst du unter "Copy" dir einen XPath-Ausdruck in die Zwischenablage legen.

ZitatMit deiner HTML-Quelle funktioniert aber die Regex auch einwandfrei. Wie bist du auf diese "Blank-Url" gekommen?

Die ist in der JSON-Quelle verlinkt, aber wird auch angezeigt wenn man sich die Header anschaut.

Geh doch mal hin und sag ihm, dass du keine Wurst kaufen würdest, die gemacht ist wie der Quelltext auf der Seite ;-)
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 18 Dezember 2020, 23:19:10
Zitat von: Christoph Morrison am 18 Dezember 2020, 18:43:42
Ich habe die Ausdrücke gerade noch mal mit einer Kopie deines HTTPMOD-Devices versucht und ja, ich bekomme da auch kein Reading. Erstmal läuft die Seite ständig in einen Timeout, zweitens scheint mein XPather mit dem defekten Quelltext vom Poferl nicht klar zu kommen. Schade.

Okay, dann lag es nicht nur an mir. Hab mir extra ein Browser-AdOn installiert, dass das können sollte, aber das hat auch immer nur den kaputten Queltext bemängelt.  ;)

Zitat von: Christoph Morrison am 18 Dezember 2020, 18:43:42
Wenn du einen Kontext-Klick (also rechts z.B.) auf ein Element machst, kannst du unter "Copy" dir einen XPath-Ausdruck in die Zwischenablage legen.

Vielen Dank! Solche Tipps sind Goldwert! Klappt wunderbar!

Zitat von: Christoph Morrison am 18 Dezember 2020, 18:43:42
Geh doch mal hin und sag ihm, dass du keine Wurst kaufen würdest, die gemacht ist wie der Quelltext auf der Seite ;-)

Ja der Quellcode ist nicht das Einzigste, dass bei dem Guten nicht stimmt....  :-X
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: amenomade am 19 Dezember 2020, 02:45:22
Die Regex
(?:>Montag.*[\S\s]*?<td.*">?)(.*)(?:<\/.*>)
führt zu katastrophales Backtracking (https://riptutorial.com/de/regex/example/3180/warum-kann-backtracking-eine-falle-sein-). Kein Wunder, dass FHEM abstürzt.

Versuche einfach mit:
>Montag.*?<td.*?">(.*?)<

EDIT: und falls Du beide Gerichte willst:
>Dienstag.*?<td.*?">(.*?)<.*?td.*?">(.*?)<

reading01JSON ist hier überflüssig, wenn Du reading01Regex definierst.
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 23 Dezember 2020, 13:01:04
Zitat von: amenomade am 19 Dezember 2020, 02:45:22
Die Regex
(?:>Montag.*[\S\s]*?<td.*">?)(.*)(?:<\/.*>)
führt zu katastrophales Backtracking (https://riptutorial.com/de/regex/example/3180/warum-kann-backtracking-eine-falle-sein-). Kein Wunder, dass FHEM abstürzt.

Vielen Dank für den Link. Werde mit das gleich mal durchlesen. Habe mir schon gedacht, dass jemand mit Ahnung wahrscheinlich die Hände über dem Kopf zusammenschlägt...  ;D

Zitat von: amenomade am 19 Dezember 2020, 02:45:22
Versuche einfach mit:
>Montag.*?<td.*?">(.*?)<

EDIT: und falls Du beide Gerichte willst:
>Dienstag.*?<td.*?">(.*?)<.*?td.*?">(.*?)<

Habe die Regex auf regex101 getestet. Aber sie bringen leider kein Match.....
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: amenomade am 23 Dezember 2020, 13:04:35
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
   
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: Floriky am 23 Dezember 2020, 13:08:54
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 (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 (https://riptutorial.com/de/regex/example/3180/warum-kann-backtracking-eine-falle-sein-). 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?
Titel: Antw:Regex um FHEM zu töten?!
Beitrag von: amenomade am 23 Dezember 2020, 13:18:25
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.