regex101 findet 12 Treffer - HTTPMOD gibt nichts zurück

Begonnen von Marko1976, 26 März 2026, 23:31:08

Vorheriges Thema - Nächstes Thema

Marko1976

Nach wie vor liege ich mit Regex auf Kriegsfuss.
Habe jetzt regex101.com genutzt und dort gibt mir die Regex
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt=".*" src=".*" width=".*" height=".*" \/>
<\/div>
(.*)
<\/div>
Bei folgendem Seitencode
<div class=" "></div>

<h1 class="">Spielplan</h1>

<div id="c10" class="frame frame-default frame-type-list frame-layout-0">

<div class="row">
<div class="col-lg-12">

<style>
.teamshorts {
font-size:12px;
}
</style>
<div class="row playoff-fullsize">
<div class="col-lg-12">
<div class="card">
<div class="card__header">
<img class="pologo" alt="Playoff" src="/typo3temp/assets/_processed_/4/6/csm_PLAYOFF_LOGO_rot_eeabda88d8.png" width="105" height="15" />
</div>
<div class="card__content">

<div class="row my-3">
<div class="col">

<h3 class=" ml-4"></h3>

</div>
</div>
<div class="row">

</div>

<div class="row my-3">
<div class="col">

<img class="pologo" alt="Viertelfinale" src="/typo3temp/assets/_processed_/5/3/csm_Viertelfinale_Rot_Wort_1b67629b64.png" width="166" height="15" />

</div>
</div>
<div class="row">

<div class="col-12 col-lg-6 mx-auto my-3 singleseries">
<div class="col-12">
<div class="row">
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Kölner Haie" src="/fileadmin/images/teams/2023/team_11.svg" width="200" height="176" />
</div>
Kölner Haie
</div>
<div class="col-2 text-center">
Serie<br>
<h3>1:0</h3>
</div>
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Schwenninger Wild Wings" src="/fileadmin/images/teams/2023/team_15.svg" width="200" height="114" />
</div>
Schwenninger Wild Wings
</div>
</div>
</div>
<div class="col-12 mt-3">
<div class="row">

<div class="col text-center gameentry">
<span class="teamshorts">SWW:KEC</span><br>
<a href="/statistik/spieldetails/25032026_schwenninger-wild-wings_gg_koelner-haie_4341">
0:1
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">KEC:SWW</span><br>
27.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">SWW:KEC</span><br>
29.03.<br>
15:00</div>

<div class="col text-center gameentry">
<span class="teamshorts">KEC:SWW</span><br>
31.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">SWW:KEC</span><br>
02.04.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">KEC:SWW</span><br>
04.04.<br>
15:00</div>

<div class="col text-center gameentry">
<span class="teamshorts">KEC:SWW</span><br>
06.04.<br>
00:00</div>

</div>
</div>
</div>

<div class="col-12 col-lg-6 mx-auto my-3 singleseries">
<div class="col-12">
<div class="row">
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Adler Mannheim" src="/fileadmin/images/teams/2023/team_2.svg" width="200" height="200" />
</div>
Adler Mannheim
</div>
<div class="col-2 text-center">
Serie<br>
<h3>1:0</h3>
</div>
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Pinguins Bremerhaven" src="/fileadmin/images/teams/2023/team_9.svg" width="184" height="200" />
</div>
Pinguins Bremerhaven
</div>
</div>
</div>
<div class="col-12 mt-3">
<div class="row">

<div class="col text-center gameentry">
<span class="teamshorts">MAN:BHV</span><br>
<a href="/statistik/spieldetails/25032026_adler-mannheim_gg_pinguins-bremerhaven_4340">
5:2
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">BHV:MAN</span><br>
27.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">MAN:BHV</span><br>
29.03.<br>
16:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">BHV:MAN</span><br>
31.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">MAN:BHV</span><br>
02.04.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">BHV:MAN</span><br>
04.04.<br>
19:00</div>

<div class="col text-center gameentry">
<span class="teamshorts">MAN:BHV</span><br>
06.04.<br>
00:00</div>

</div>
</div>
</div>

<div class="col-12 col-lg-6 mx-auto my-3 singleseries">
<div class="col-12">
<div class="row">
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Straubing Tigers" src="/fileadmin/images/teams/2023/team_6.svg" width="174" height="200" />
</div>
Straubing Tigers
</div>
<div class="col-2 text-center">
Serie<br>
<h3>1:0</h3>
</div>
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Eisbären Berlin" src="/fileadmin/images/teams/2023/team_3.svg" width="160" height="160" />
</div>
Eisbären Berlin
</div>
</div>
</div>
<div class="col-12 mt-3">
<div class="row">

<div class="col text-center gameentry">
<span class="teamshorts">STR:EBB</span><br>
<a href="/statistik/spieldetails/24032026_straubing-tigers_gg_eisbaeren-berlin_4339">
5:1
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">EBB:STR</span><br>
27.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">STR:EBB</span><br>
29.03.<br>
14:00</div>

<div class="col text-center gameentry">
<span class="teamshorts">EBB:STR</span><br>
31.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">STR:EBB</span><br>
02.04.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">EBB:STR</span><br>
04.04.<br>
16:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">STR:EBB</span><br>
06.04.<br>
00:00</div>

</div>
</div>
</div>

<div class="col-12 col-lg-6 mx-auto my-3 singleseries">
<div class="col-12">
<div class="row">
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="EHC Red Bull München" src="/fileadmin/images/teams/2023/team_12.svg" width="200" height="160" />
</div>
EHC Red Bull München
</div>
<div class="col-2 text-center">
Serie<br>
<h3>0:1</h3>
</div>
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="ERC Ingolstadt" src="/fileadmin/_processed_/5/c/csm_team_1_7a9cf9eecf.png" width="181" height="200" />
</div>
ERC Ingolstadt
</div>
</div>
</div>
<div class="col-12 mt-3">
<div class="row">

<div class="col text-center gameentry">
<span class="teamshorts">RBM:ING</span><br>
<a href="/statistik/spieldetails/24032026_ehc-red-bull-muenchen_gg_erc-ingolstadt_4338">
5:6
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">ING:RBM</span><br>
27.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">RBM:ING</span><br>
29.03.<br>
19:00</div>

<div class="col text-center gameentry">
<span class="teamshorts">ING:RBM</span><br>
31.03.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">RBM:ING</span><br>
02.04.<br>
19:30</div>

<div class="col text-center gameentry">
<span class="teamshorts">ING:RBM</span><br>
04.04.<br>
14:00</div>

<div class="col text-center gameentry">
<span class="teamshorts">RBM:ING</span><br>
06.04.<br>
00:00</div>

</div>
</div>
</div>

</div>

<div class="row my-3">
<div class="col">

<h3 class=" ml-4">1. Playoff-Runde</h3>

</div>
</div>
<div class="row">

<div class="col-12 col-lg-6 mx-auto my-3 singleseries">
<div class="col-12">
<div class="row">
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Pinguins Bremerhaven" src="/fileadmin/images/teams/2023/team_9.svg" width="184" height="200" />
</div>
Pinguins Bremerhaven
</div>
<div class="col-2 text-center">
Serie<br>
<h3>2:0</h3>
</div>
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Nürnberg Ice Tigers" src="/fileadmin/images/teams/2023/team_14.svg" width="177" height="200" />
</div>
Nürnberg Ice Tigers
</div>
</div>
</div>
<div class="col-12 mt-3">
<div class="row">

<div class="col text-center gameentry">
<span class="teamshorts">BHV:NIT</span><br>
<a href="/statistik/spieldetails/17032026_pinguins-bremerhaven_gg_nuernberg-ice-tigers_4334">
4:0
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">NIT:BHV</span><br>
<a href="/statistik/spieldetails/20032026_nuernberg-ice-tigers_gg_pinguins-bremerhaven_4336">
2:3
</a>
<br>

</div>

</div>
</div>
</div>

<div class="col-12 col-lg-6 mx-auto my-3 singleseries">
<div class="col-12">
<div class="row">
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Grizzlys Wolfsburg" src="/fileadmin/images/teams/2023/team_8.svg" width="190" height="200" />
</div>
Grizzlys Wolfsburg
</div>
<div class="col-2 text-center">
Serie<br>
<h3>1:2</h3>
</div>
<div class="col-5 text-center">
<div class="imgcontainer">
<img class="img-fluid poteamlogo" alt="Schwenninger Wild Wings" src="/fileadmin/images/teams/2023/team_15.svg" width="200" height="114" />
</div>
Schwenninger Wild Wings
</div>
</div>
</div>
<div class="col-12 mt-3">
<div class="row">

<div class="col text-center gameentry">
<span class="teamshorts">WOB:SWW</span><br>
<a href="/statistik/spieldetails/18032026_grizzlys-wolfsburg_gg_schwenninger-wild-wings_4335">
3:1
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">SWW:WOB</span><br>
<a href="/statistik/spieldetails/20032026_schwenninger-wild-wings_gg_grizzlys-wolfsburg_4337">
5:1
</a>
<br>

</div>

<div class="col text-center gameentry">
<span class="teamshorts">WOB:SWW</span><br>
<a href="/statistik/spieldetails/22032026_grizzlys-wolfsburg_gg_schwenninger-wild-wings_4354">
2:3
</a>
<br>
OT
</div>

</div>
</div>
</div>

</div>

</div>
</div>
</div>
</div>

</div>
</div>

</div>

</div>
</div>

<!-- Footer ================================================== -->
<footer id="footer" class="footer">
<!-- Footer Widgets -->
<div class="footer-widgets">
<div class="footer-widgets__inner">
<div class="container">
<div class="row">
<div class="col-12">
<!-- Main Navigation -->

<h3 class="widget__title">Intern</h3>
<div class="row">

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/ligabuero"
target=""
title="Ligabüro"
>Ligabüro</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="https://www.championshockeyleague.com/"
target="_blank"
title="Champions Hockey League"
>Champions Hockey League</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="https://www.hockeyeurope.eu/"
target="_blank"
title="Hockey  Europe"
>Hockey  Europe</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="https://profisport-deutschland.de/"
target="_blank"
title="Initiative Profisport Deutschland"
>Initiative Profisport Deutschland</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="https://www.eurohockeyclubs.com/"
target="_blank"
title="Alliance of European Hockey Clubs"
>Alliance of European Hockey Clubs</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="https://vsa-ev.de/"
target="_blank"
title="Vereinigung Sportsponsoring-Anbieter"
>Vereinigung Sportsponsoring-Anbieter</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/spielervermittler"
target=""
title="Spielervermittler"
>Spielervermittler</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/partner"
target=""
title="Partner"
>Partner</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/kontakt-presse"
target=""
title="Kontakt/Presse"
>Kontakt/Presse</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/impressum"
target=""
title="Impressum"
>Impressum</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/datenschutz"
target=""
title="Datenschutz"
>Datenschutz</a>
</div>

<div class="col-12 col-sm-6 col-md-3 mb-2">
<a href="/intern/datenschutz-fantasy"
target=""
title="Datenschutz - Fantasy"
>Datenschutz - Fantasy</a>
</div>

</div>

</div>
</div>
</div>
</div>
</div>
<!-- Footer Widgets / End -->

<!-- Footer Secondary -->
<div class="footer-secondary">
<div class="container">
<div class="footer-secondary__inner">
<div class="row">
<div class="col-lg-12">
<!-- Social Links -->
<ul class="social-links social-links--btn social-links--btn-plus">
<li class="social-links__item">
<a href="https://www.instagram.com/penny.del/" target="_blank" class="social-links__link social-links__link--instagram">
<i class="fab fa-instagram"></i>
<span class="social-links__label">Instagram</span>
<span class="social-links__icon"><i class="fas fa-plus"></i></span>
</a>
</li>
<li class="social-links__item">
<a href="https://www.facebook.com/PENNY.DEL" target="_blank" class="social-links__link social-links__link--facebook">
<i class="fab fa-facebook"></i>
<span class="social-links__label">Facebook</span>
<span class="social-links__icon"><i class="fas fa-plus"></i></span>
</a>
</li>
<li class="social-links__item">
<a href="https://www.threads.com/@penny.del" target="_blank" class="social-links__link social-links__link--threads">
<img src="/_assets/e4ccd237e60ebadf8c55c336e47a814f/images/social/threads/logo.svg" width="21" height="21" alt="" />
<span class="social-links__label">Threads</span>
<span class="social-links__icon"><i class="fas fa-plus"></i></span>
</a>
</li>
<li class="social-links__item">
<a href="https://youtube.com/@PennyDEL" target="_blank" class="social-links__link social-links__link--youtube">
<i class="fab fa-youtube"></i>
<span class="social-links__label">Youtube</span>
<span class="social-links__icon"><i class="fas fa-plus"></i></span>
</a>
</li>
<li class="social-links__item">
<a href="https://tiktok.com/@penny.del" target="_blank" class="social-links__link social-links__link--tiktok">
<i class="fab fa-tiktok"></i>
<span class="social-links__label">TikTok</span>
<span class="social-links__icon"><i class="fas fa-plus"></i></span>
</a>
</li>
<li class="social-links__item">
<a href="https://www.linkedin.com/company/penny-del" target="_blank" class="social-links__link social-links__link--linkedin">
<i class="fab fa-linkedin"></i>
<span class="social-links__label">Linkedin</span>
<span class="social-links__icon"><i class="fas fa-plus"></i></span>
</a>
</li>
</ul>
<!-- Social Links / End -->
</div>
</div>
</div>
</div>
</div>
<!-- Footer Secondary / End -->
</footer>
<!-- Footer / End -->
</div>
insgesamt 12 Treffer zurück.

Egal ob ich die Regex genauso wie oben oder in einer einzigen Zeile im Device eingebe wird dort leider gar nichts zurück gegeben und ich verstehe einfach nicht wieso.
Hier noch das List des HTTPMOD-Device:
Internals:
   BUSY       0
   DEF        https://www.penny-del.org/spiele 3000
   FUUID      66cf7fe7-f33f-7706-7aa6-c94072d116681b44
   FVERSION   98_HTTPMOD.pm:0.291590/2024-09-23
   Interval   3000
   MainURL    https://www.penny-del.org/spiele
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       hockey_playoff
   NOTIFYDEV  global
   NR         381
   NTFY_ORDER 50-hockey_playoff
   STATE      name-1
   TYPE       HTTPMOD
   eventCount 147
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://www.penny-del.org:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.penny-del.org/spiele
     header     
     host       www.penny-del.org
     httpheader HTTP/1.1 200 OK
date: Thu, 26 Mar 2026 22:19:02 GMT
server: Apache/2.4.52 (Ubuntu)
content-language: de-DE
cache-control: max-age=0
expires: Thu, 26 Mar 2026 22:19:02 GMT
vary: Accept-Encoding
content-encoding: gzip
x-ua-compatible: IE=edge
x-content-type-options: nosniff
content-length: 8979
keep-alive: timeout=5, max=100
content-type: text/html; charset=utf-8
connection: close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /spiele
     protocol   https
     redirects  0
     timeout    60
     url        https://www.penny-del.org/spiele
     sslargs:
   OLDREADINGS:
   QUEUE:
   READINGS:
     2026-03-26 23:19:02   standing-1      1:0
     2026-03-26 23:19:02   standing-2      1:0
     2026-03-26 23:19:02   standing-3      1:0
     2026-03-26 23:19:02   standing-4      0:1
     2026-03-26 23:19:02   standing-5      2:0
     2026-03-26 23:19:02   standing-6      1:2
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.penny-del.org/spiele
   defptr:
     readingBase:
       logo-1     reading
       logo-2     reading
       logo-3     reading
       logo-4     reading
       name-1     reading
       name-10    reading
       name-11    reading
       name-12    reading
       name-2     reading
       name-3     reading
       name-4     reading
       name-5     reading
       name-6     reading
       name-7     reading
       name-8     reading
       name-9     reading
       standing-1 reading
       standing-2 reading
       standing-3 reading
       standing-4 reading
       standing-5 reading
       standing-6 reading
       standing-7 reading
       standing-8 reading
       standing-9 reading
     readingNum:
       logo-1     02
       logo-2     02
       logo-3     02
       logo-4     02
       name-1     01
       name-10    01
       name-11    01
       name-12    01
       name-2     01
       name-3     01
       name-4     01
       name-5     01
       name-6     01
       name-7     01
       name-8     01
       name-9     01
       standing-1 03
       standing-2 03
       standing-3 03
       standing-4 03
       standing-5 03
       standing-6 03
       standing-7 03
       standing-8 03
       standing-9 03
     readingOutdated:
     readingSubNum:
       logo-1     -1
       logo-2     -2
       logo-3     -3
       logo-4     -4
       name-1     -1
       name-10    -10
       name-11    -11
       name-12    -12
       name-2     -2
       name-3     -3
       name-4     -4
       name-5     -5
       name-6     -6
       name-7     -7
       name-8     -8
       name-9     -9
       standing-1 -1
       standing-2 -2
       standing-3 -3
       standing-4 -4
       standing-5 -5
       standing-6 -6
       standing-7 -7
       standing-8 -8
       standing-9 -9
     requestReadings:
       update:
         logo-1     reading 02-1
         logo-2     reading 02-2
         logo-3     reading 02-3
         logo-4     reading 02-4
         name-1     reading 01-1
         name-10    reading 01-10
         name-11    reading 01-11
         name-12    reading 01-12
         name-2     reading 01-2
         name-3     reading 01-3
         name-4     reading 01-4
         name-5     reading 01-5
         name-6     reading 01-6
         name-7     reading 01-7
         name-8     reading 01-8
         name-9     reading 01-9
         standing-1 reading 03-1
         standing-2 reading 03-2
         standing-3 reading 03-3
         standing-4 reading 03-4
         standing-5 reading 03-5
         standing-6 reading 03-6
         standing-7 reading 03-7
         standing-8 reading 03-8
         standing-9 reading 03-9
Attributes:
   alias      DEL Play-Off's
   enableControlSet 1
   group      Eishockey
   icon       Wunderlist
   reading01Name name
   reading01RegOpt g
   reading01Regex <div class="col-5 text-center"> <div class="imgcontainer"> <img class="img-fluid poteamlogo" alt=".*" src=".*" width=".*" height=".*" \/> <\/div> (.*) <\/div>
   reading02Name logo
   reading02RegOpt g
   reading02Regex <div xclass="imgcontainer"><img class="img-fluid poteamlogo" alt=.* src="(.*)" width="200" height="176" /></div>
   reading03Name standing
   reading03RegOpt g
   reading03Regex <h3>(.*)<\/h3>
   reading04Name nameVF
   reading04RegOpt g
   reading04Regex <p class="hw-appdb__playoff__round__serie__info">(.*)<\/p>
   room       Information->Sport
   stateFormat name-1
   timeout    60
   userattr   .*
   verbose    0
Es geht erstmal nur um das Reading1, also das Reading "name". "logo" ist noch nicht bearbeitet und "standing" funktioniert. "nameVF" ist für einen Versuch vorgesehen, da ich noch andere Ideen habe die ich gerne umsetzen möchte.

Ich möchte diesen Mist endlich verstehen, daher wäre ich für jeden Tip dankbar.

Guybrush

du musst auch line breaks etc mit in deinen match aufnehmen. dein regex kann so nicht funktionieren. Wenn du nur die Namen haben willst, dann passt die regex hier:

^<\/div>$\s^(\w[\s\w]*)$\s^<\/div>$

grundsätzlich immer die kürzest mögliche regex wählen. das ist in deinem fall die obige. Das von dir gesuchte steht einzeln in einer Zeile bestehend aus mindestens einem oder mehreren Wörtern. in den zeilen davor/dahinter kommt jeweils nur ein </div> vor. es sind 8 treffer.

Marko1976

Dann nutzt regex101 ja prinzipiell doch wieder nichts, denn da werden die Treffer ja auch so gefunden.
Apropo Treffer, es sollten eigentlich 12 sein, aber da muss ich mir den Quelltext noch mal genau ansehen.
Die Frage ist allerdings was die Bedeutung von
(\w[\s\w]*)im einzelnen ist. /w und /s ist klar, aber speziell die eckige Klammer ist für mich unverständlich. Da aber einige Treffer aus mehr als zwei Wörtern bestehen ist hier wohl auch der Grund warum nur 8 statt 12 Treffer gematcht werden

Guybrush

regex101 ist ein super tool und hilft auch mir bei komplexeren regex. wie gesagt - deine regex war schon unnötig lang und es fehlten z.b. die linebreaks (\s). habs nicht bei regex101 nachgestellt, aber kann mir nicht vorstellen, dass das da so auch ging.

wegen deiner Frage nach der Bedeutung der Regex

\w = irgendein Wort (dafür könnte man auch [a-zA-z0-9_] nehmen, was das gleiche wäre)
[\s\w]* leerzeichen oder wörter, die weiter vorkommen können, aber nicht müssen

Kölner Haie würdest du mit \w finden. Damit du " Haie" findest, brauchst du [\s\w]. In dem konkreten Beispiel könntest du auch \w\s\w machen, was auch matchen würde. Aber da es auch mehr als 2 wörter geben kann und ggf. mehrere leerzeichen auch hintereinander kommen ist [\s\w] besser, da die Reihenfolge dann keine Rolle mehr spielt. Das * bedeutet nur, dass es vorkommen kann, aber nicht muss.

passibe

Kurzer Hinweis noch, dass es dann zwischen regex101 und dem, was HTTPMOD macht, Unterschiede geben kann, wenn der "Inhalt" nicht 1:1 übereinstimmt. Also wenn das, was du in das untere "Test String"-Feld bei regex101 einfügst, nicht 1:1 dasselbe ist wie das, was HTTPMOD einliest, wenn es eine Website abruft, bringen dir die Matches in regex101 eher wenig.

Will damit nicht sagen, dass das hier das Problem ist, aber es kann z.B. sein, dass HTTPMOD die Zeilenumbrüche anders interpretiert als das, was du aus dem Browser-"Seitenquelltext anzeigen"-Ding rauskopierst und es deshalb nicht 1:1 passt. Ich glaube, man kann über verbose erreichen, dass HTTPMOD den gesamten Seitenquelltext ins FHEM-Log schreibt; wenn man das als "Test String" in regex101 reinpackt, müsste es aber eigentlich gehen.

Zusätzlich muss man noch beachten, dass regex101 standardmäßig /gm, also global + multiline Flags setzt, bin mir grade nicht sicher, was HTTPMOD da macht bzw. wie man das ändert. Das kann aber auch eine weitere Fehlerquelle sein (wie gesagt, muss nicht sein, dass das hier das Problem ist, aber sollte man ggfs. ausschließen).

Marko1976

#5
Leider hast du nicht erklärt wozu die eckige Klammer explizit ist, genau die gibt mir nach wie vor die meisten Rätsel auf.

Zitat von: Guybrush am 27 März 2026, 13:43:44Aber da es auch mehr als 2 wörter geben kann und ggf. mehrere leerzeichen auch hintereinander kommen ist [\s\w] besser, da die Reihenfolge dann keine Rolle mehr spielt.
Dann ist es mir unerklärlich warum er nur 8 statt 12 Matches hat. Es sind zwar Wiederholungen, dennoch müssten sie ja als Match gefunden werden.

Das die Regex so viel Vorbau hat ist dem Gedankengang geschuldet, dass ich eigentlich zwischen den einzelnen Runden unterscheiden will, also 4 Matches in der 1. Runde, 8 Mannschaften im Viertelfinale, 4 Mannschaften im Halbfinale und 2 Mannschaften im Finale. Die beiden letzteren werden im Verlauf noch zur Webseite hinzugefügt werden - was genau mein Problem sein wird, da sie oberhalb hinzugefügt werden. Was also jetzt als 1. Mannschaft Viertelfinale gematch wird, würde ab dem Halbfinale dann die 1. Mannschaft Halbfinale wiedergeben. Was wiederrum meine Seitendarstellung und Auswertung über den Haufen schmeißt.
Deshalb hatte ich Hier schon gefragt, ob man mit HTTPMOD eine Webseite auch von unten nach oben auswerten lassen kann, do sowohl eine Netzrecherche als auch hier im Forum ergab keine Antwort.

Dein Code
^<\/div>$\s^(\w[\s\w]*)$\s^<\/div>$erzeugt übrigens bei mir im Device 0 Matches - jedenfals werden keine neuen Readings mit den Teamnamen erzeugt.

Hier noch mal ein aktuelles List des Device:
Internals:
   BUSY       0
   DEF        https://www.penny-del.org/spiele 3000
   FUUID      66cf7fe7-f33f-7706-7aa6-c94072d116681b44
   FVERSION   98_HTTPMOD.pm:0.291590/2024-09-23
   Interval   3000
   MainURL    https://www.penny-del.org/spiele
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       hockey_playoff
   NOTIFYDEV  global
   NR         381
   NTFY_ORDER 50-hockey_playoff
   STATE      name-1
   TYPE       HTTPMOD
   eventCount 210
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://www.penny-del.org:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.penny-del.org/spiele
     header     
     host       www.penny-del.org
     httpheader HTTP/1.1 200 OK
date: Fri, 27 Mar 2026 14:49:56 GMT
server: Apache/2.4.52 (Ubuntu)
content-language: de-DE
cache-control: max-age=0
expires: Fri, 27 Mar 2026 14:49:56 GMT
vary: Accept-Encoding
content-encoding: gzip
x-ua-compatible: IE=edge
x-content-type-options: nosniff
content-length: 8767
keep-alive: timeout=5, max=100
content-type: text/html; charset=utf-8
connection: close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /spiele
     protocol   https
     redirects  0
     timeout    60
     url        https://www.penny-del.org/spiele
     sslargs:
   OLDREADINGS:
   QUEUE:
   READINGS:
     2026-03-27 15:49:57   series-1        1:0
     2026-03-27 15:49:57   series-2        1:0
     2026-03-27 15:49:57   series-3        1:0
     2026-03-27 15:49:57   series-4        0:1
     2026-03-27 15:49:57   series-5        2:0
     2026-03-27 15:49:57   series-6        1:2
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.penny-del.org/spiele
   defptr:
     readingBase:
       logo-1     reading
       logo-2     reading
       logo-3     reading
       logo-4     reading
       name-1     reading
       name-10    reading
       name-11    reading
       name-12    reading
       name-2     reading
       name-3     reading
       name-4     reading
       name-5     reading
       name-6     reading
       name-7     reading
       name-8     reading
       name-9     reading
       series-1   reading
       series-2   reading
       series-3   reading
       series-4   reading
       series-5   reading
       series-6   reading
       standing-1 reading
       standing-2 reading
       standing-3 reading
       standing-4 reading
       standing-5 reading
       standing-6 reading
       standing-7 reading
       standing-8 reading
       standing-9 reading
     readingNum:
       logo-1     02
       logo-2     02
       logo-3     02
       logo-4     02
       name-1     01
       name-10    01
       name-11    01
       name-12    01
       name-2     01
       name-3     01
       name-4     01
       name-5     01
       name-6     01
       name-7     01
       name-8     01
       name-9     01
       series-1   03
       series-2   03
       series-3   03
       series-4   03
       series-5   03
       series-6   03
       standing-1 03
       standing-2 03
       standing-3 03
       standing-4 03
       standing-5 03
       standing-6 03
       standing-7 03
       standing-8 03
       standing-9 03
     readingOutdated:
     readingSubNum:
       logo-1     -1
       logo-2     -2
       logo-3     -3
       logo-4     -4
       name-1     -1
       name-10    -10
       name-11    -11
       name-12    -12
       name-2     -2
       name-3     -3
       name-4     -4
       name-5     -5
       name-6     -6
       name-7     -7
       name-8     -8
       name-9     -9
       series-1   -1
       series-2   -2
       series-3   -3
       series-4   -4
       series-5   -5
       series-6   -6
       standing-1 -1
       standing-2 -2
       standing-3 -3
       standing-4 -4
       standing-5 -5
       standing-6 -6
       standing-7 -7
       standing-8 -8
       standing-9 -9
     requestReadings:
       update:
         logo-1     reading 02-1
         logo-2     reading 02-2
         logo-3     reading 02-3
         logo-4     reading 02-4
         name-1     reading 01-1
         name-10    reading 01-10
         name-11    reading 01-11
         name-12    reading 01-12
         name-2     reading 01-2
         name-3     reading 01-3
         name-4     reading 01-4
         name-5     reading 01-5
         name-6     reading 01-6
         name-7     reading 01-7
         name-8     reading 01-8
         name-9     reading 01-9
         series-1   reading 03-1
         series-2   reading 03-2
         series-3   reading 03-3
         series-4   reading 03-4
         series-5   reading 03-5
         series-6   reading 03-6
         standing-1 reading 03-1
         standing-2 reading 03-2
         standing-3 reading 03-3
         standing-4 reading 03-4
         standing-5 reading 03-5
         standing-6 reading 03-6
         standing-7 reading 03-7
         standing-8 reading 03-8
         standing-9 reading 03-9
Attributes:
   alias      DEL Play-Off's
   enableControlSet 1
   group      Eishockey
   icon       Wunderlist
   reading01Name name
   reading01RegOpt g
   reading01Regex ^<\/div>$\s^(\w[\s\w]*)$\s^<\/div>$
   reading02Name logo
   reading02RegOpt g
   reading02Regex <div xclass="imgcontainer"><img class="img-fluid poteamlogo" alt=.* src="(.*)" width="200" height="176" /></div>
   reading03Name series
   reading03RegOpt g
   reading03Regex <h3>(.*)<\/h3>
   reading04Name nameVF
   reading04RegOpt g
   reading04Regex <p class="hw-appdb__playoff__round__serie__info">(.*)<\/p>
   room       Information->Sport
   stateFormat name-1
   timeout    60
   userattr   .*
   verbose    0
Was mich dabei etwas verwundert, es werden alle alten Readings (die ich längst geloscht habe) unter Readingsupdate, Readingsbase, Readingsnum etc. gelistet - natürlich nicht als Reading mit Inhalt. Dennoch scheinen die Readings ja irgendwie verarbeitet zu werden.

@passibe
Ich hatte in dem unteren Textfeld lediglich die Einrückungen rausgelöscht, aber ansonsten nichts. Das gm kannst du einfach ändern indem du darauf klickst und in der List den Haken beim Eintrag m deaktivierst. Das habe ich beachtet, da ich im Device nur g stehen habe.

Marko1976

#6
Also
<div class="col-5 text-center">[\s\S]*?<\/div>\s(.*)\s<\/div>erzeugt 6 Readings (name-1 bis name-6) aber alle ohne Inhalt.
<\/div>\s(\w[\s\w]*)\s<\/div>erzeugt nicht mal die 6 Leere Readings.

Guybrush

wenn du konkretere hilfe möchtest, dann poste mal die zeilen, die du matchen willst mit jeweils den 2 davor und dahinter..

[\s\S] ist im übrigen total sinnfrei, weil das alles = "." ist. wenn du mit .* arbeitest, ist das ? für shortest match im regelfall essentiell...