FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stera am 18 März 2021, 04:54:30

Titel: [gelöst] Zahlen aus Tabelle (RegEx)
Beitrag von: stera am 18 März 2021, 04:54:30
Hallo zusammen,

ich komme mit dem auslesen von Zahlen bei RegEx nicht weiter. Würde gerne aus einem bestimmten Bereich Zahlen aus einer HTML Tabelle haben.
Als Beispiel hier, Alle Zahlen von ZahlenA und später als Einzelreading in HTTPMod


<tr>
<td>ZahlenA</td>
<td>84,8</td>
<td>21</td>
<td>7</td>
<td>3</td>
<td>3</td>
<td>11</td>
<td>13</td>
<td>10</td>
</tr>
<tr>
<td>ZahlenB</td>
<td>84,8</td>
<td>21</td>
<td>7</td>
<td>3</td>
<td>3</td>
<td>11</td>
<td>13</td>
<td>10</td>
</tr>



(?s)(\d\d\,\d|\d\d|\d)   -> Das gibt mir alle Zahlen von beiden Tabellen

(?s)ZahlenA.*?(\d\d\,\d|\d\d|\d).*?tr>     -> Das gibt mir nur die erst Zahl der Tabelle

Danke für eure Hilfe.

Titel: Antw:Zahlen aus Tabelle (RegEx)
Beitrag von: DeeSPe am 18 März 2021, 10:09:36
ZahlenA<[\S\s\r\n]*?<td>(\d{1,3},?\d?)<[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)

Mit diesem RegEx bekommst Du alle Zahlen in entsprechenden Captcher Groups.
Wenn der RegEx bei HTTPMOD hinterlegt wird entstehen dort mehrere Readings entsprechend der Captcher Groups.
z.B.
attr <name> reading01Name ZahlenA
attr <name> reading01Regex ZahlenA<[\S\s\r\n]*?<td>(\d{1,3},?\d?)<[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)[\S\s\r\n]*?<td>(\d{1,3},?\d?)


Dann entstehen die Readings "ZahlenA-1", "ZahlenA-2" usw.

Gruß
Dan
Titel: Antw:Zahlen aus Tabelle (RegEx)
Beitrag von: stera am 21 März 2021, 19:10:10
Sorry für die späte Antwort. Vielen Dank, dass klappt super  :)

Schönen Sonntag noch.