Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Javascript RegExp ???

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.5k

Javascript RegExp ???

Scheduled Pinned Locked Moved JavaScript
10 Posts 4 Posters 788 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sveni_lee
    wrote on last edited by
    #1

    Ich stehe irgendwie mit RegExp auf dem Kriegsfuß.
    ich möchte gern den Inhalt einer webseite parsen und hierbei speziel einen Auschnitt herausfiltern.

    ich möchte gern alles zwischen <p><strong>kumuliert</strong><strong></strong></p> und </tbody> zurückbekommen.

    let casescontainer_ = new RegExp('<p><strong>kumuliert<\/strong><strong><\/strong><\/p>(.+?)<\/tbody>')
    let casescontainer = casescontainer_.exec(inhaltweb)
    

    es kommt aber nur 'null' zurück.

    wo liegt mein Fehler?

    HomoranH OliverIOO 2 Replies Last reply
    0
    • S sveni_lee

      Ich stehe irgendwie mit RegExp auf dem Kriegsfuß.
      ich möchte gern den Inhalt einer webseite parsen und hierbei speziel einen Auschnitt herausfiltern.

      ich möchte gern alles zwischen <p><strong>kumuliert</strong><strong></strong></p> und </tbody> zurückbekommen.

      let casescontainer_ = new RegExp('<p><strong>kumuliert<\/strong><strong><\/strong><\/p>(.+?)<\/tbody>')
      let casescontainer = casescontainer_.exec(inhaltweb)
      

      es kommt aber nur 'null' zurück.

      wo liegt mein Fehler?

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      @sveni_lee sagte in Javascript RegExp ???:

      Ich stehe irgendwie mit RegExp auf dem Kriegsfuß.

      das ist weniger mein Problem, als ein RegExp in javascript einzubinden ;-)

      @sveni_lee sagte in Javascript RegExp ???:

      Ich möchte gern den Inhalt einer webseite parsen und hierbei speziel einen Auschnitt herausfiltern.

      Da kann ich dir gerne versuchen zu helfen, den richtigen RegExp zu finden, aber mit der Einbindung in js leider nicht

      @sveni_lee sagte in Javascript RegExp ???:

      ich möchte gern alles zwischen <p><strong>kumuliert</strong><strong></strong></p> und </tbody> zurückbekommen.

      dazu benötigt man auf jeden Fall den Quelltext der gesamten Seite, nicht nur einen Ausschnitt.
      Andere Stellen auf der Seite können dir einen Strich durch die Rechnung machen, was dazu führen könnte dass null ausgegeben wird

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      S 1 Reply Last reply
      0
      • HomoranH Homoran

        @sveni_lee sagte in Javascript RegExp ???:

        Ich stehe irgendwie mit RegExp auf dem Kriegsfuß.

        das ist weniger mein Problem, als ein RegExp in javascript einzubinden ;-)

        @sveni_lee sagte in Javascript RegExp ???:

        Ich möchte gern den Inhalt einer webseite parsen und hierbei speziel einen Auschnitt herausfiltern.

        Da kann ich dir gerne versuchen zu helfen, den richtigen RegExp zu finden, aber mit der Einbindung in js leider nicht

        @sveni_lee sagte in Javascript RegExp ???:

        ich möchte gern alles zwischen <p><strong>kumuliert</strong><strong></strong></p> und </tbody> zurückbekommen.

        dazu benötigt man auf jeden Fall den Quelltext der gesamten Seite, nicht nur einen Ausschnitt.
        Andere Stellen auf der Seite können dir einen Strich durch die Rechnung machen, was dazu führen könnte dass null ausgegeben wird

        S Offline
        S Offline
        sveni_lee
        wrote on last edited by
        #3

        @Homoran

        erst einmal Danke dafür.
        Also ich habe festgestellt das die Corona-Zahlen für die Landkreise de das RKI rausgibt schon sehr stark von den hier vom Ministerium veröffentlichten abweichen. Also versuche ich die Pressemitteilungen zu parsen.

        bsp.
        https://msgiv.brandenburg.de/msgiv/de/presse/pressemitteilungen/detail/~22-10-2020-corona-faelle-stand-22102020

        es geht mir im Grunde nur um die "Tabelle".

        unction detailedLink(link) {
        
                if (link.match(/^https?:\/\//)) {
                request = request || require('request');
                request (link,
                    function(error, response, body){
        
                        htmlbody = body
                  
                let htmlcontent = htmlbody
                let container = htmlcontent.split('<main id="maincontent">')
        
                if(container[1]) {
                    let _headline = new RegExp('COVID-19: (.+?)</h1>')
                    let headline_ = _headline.exec(container[1])
                    let _news = new RegExp('<p><strong>(.+?)</strong></p>')
                    let news_ = _news.exec(container[1])
                    let news = news_[1].replace('<p>', '')
                    news = news.replace('</p>', '')
                    news = news.replace('<strong>', '')
                    news = news.replace('</strong>', '')
                    let headline = headline_[1].replace('</h1>', '')
                    log(headline)
                    log(news)
        
                    let casescontainer_ = new RegExp('<p><strong>kumuliert<\/strong><strong><\/strong><\/p>(.+?)<\/tbody>')
                    let casescontainer = casescontainer_.exec(container[1])
                    log(casescontainer[0])
                    }
                })
            }
                
        }
        
        

        der code ist noch nicht aufgeräumt und auch noch nicht schick gemacht...

        HomoranH 1 Reply Last reply
        0
        • S sveni_lee

          @Homoran

          erst einmal Danke dafür.
          Also ich habe festgestellt das die Corona-Zahlen für die Landkreise de das RKI rausgibt schon sehr stark von den hier vom Ministerium veröffentlichten abweichen. Also versuche ich die Pressemitteilungen zu parsen.

          bsp.
          https://msgiv.brandenburg.de/msgiv/de/presse/pressemitteilungen/detail/~22-10-2020-corona-faelle-stand-22102020

          es geht mir im Grunde nur um die "Tabelle".

          unction detailedLink(link) {
          
                  if (link.match(/^https?:\/\//)) {
                  request = request || require('request');
                  request (link,
                      function(error, response, body){
          
                          htmlbody = body
                    
                  let htmlcontent = htmlbody
                  let container = htmlcontent.split('<main id="maincontent">')
          
                  if(container[1]) {
                      let _headline = new RegExp('COVID-19: (.+?)</h1>')
                      let headline_ = _headline.exec(container[1])
                      let _news = new RegExp('<p><strong>(.+?)</strong></p>')
                      let news_ = _news.exec(container[1])
                      let news = news_[1].replace('<p>', '')
                      news = news.replace('</p>', '')
                      news = news.replace('<strong>', '')
                      news = news.replace('</strong>', '')
                      let headline = headline_[1].replace('</h1>', '')
                      log(headline)
                      log(news)
          
                      let casescontainer_ = new RegExp('<p><strong>kumuliert<\/strong><strong><\/strong><\/p>(.+?)<\/tbody>')
                      let casescontainer = casescontainer_.exec(container[1])
                      log(casescontainer[0])
                      }
                  })
              }
                  
          }
          
          

          der code ist noch nicht aufgeräumt und auch noch nicht schick gemacht...

          HomoranH Do not disturb
          HomoranH Do not disturb
          Homoran
          Global Moderator Administrators
          wrote on last edited by Homoran
          #4

          @sveni_lee Hier mal ein Beispiel für Barnim: Barnim[^+]+([+\d\,]+)[^\d]+(\d+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)
          damit bekämst du im Parser-Adapter mit den NUM 0-3 die 4 Werte für Barnim

          für jede andere Stadt dann analog

          EDIT:
          und mit \/strong[^+]+([+\d\,]+)[^\d]+(\d+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+) bekommst du alles in tausenden Groups

          EDIT2:
          der Versuch alles in einem RegEx zu erschlagen und die Städtenamen mit zu bekommen war schon etwas abenteuerlicher.
          Ob dieses RegEx bei dir Erfolg hat weiß ich nicht:
          ong>([\-\s\.\(\)\&\;\w]+)<\/strong><\/p>[^+]+([+\d\,]+)[^\d]+([\d\.]+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)<\/

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          S 1 Reply Last reply
          0
          • HomoranH Homoran

            @sveni_lee Hier mal ein Beispiel für Barnim: Barnim[^+]+([+\d\,]+)[^\d]+(\d+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)
            damit bekämst du im Parser-Adapter mit den NUM 0-3 die 4 Werte für Barnim

            für jede andere Stadt dann analog

            EDIT:
            und mit \/strong[^+]+([+\d\,]+)[^\d]+(\d+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+) bekommst du alles in tausenden Groups

            EDIT2:
            der Versuch alles in einem RegEx zu erschlagen und die Städtenamen mit zu bekommen war schon etwas abenteuerlicher.
            Ob dieses RegEx bei dir Erfolg hat weiß ich nicht:
            ong>([\-\s\.\(\)\&\;\w]+)<\/strong><\/p>[^+]+([+\d\,]+)[^\d]+([\d\.]+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)<\/

            S Offline
            S Offline
            sveni_lee
            wrote on last edited by
            #5

            @Homoran
            danke für deine Mühe- leider liefert es keine Werte im javascript

                        let casescontainer_ = /'ong>([\-\s\.\(\)\&\;\w]+)<\/strong><\/p>[^+]+([+\d\,]+)[^\d]+([\d\.]+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)<\/'/
                        let casescontainer = casescontainer_.exec(body)
            
            HomoranH F 2 Replies Last reply
            0
            • S sveni_lee

              @Homoran
              danke für deine Mühe- leider liefert es keine Werte im javascript

                          let casescontainer_ = /'ong>([\-\s\.\(\)\&\;\w]+)<\/strong><\/p>[^+]+([+\d\,]+)[^\d]+([\d\.]+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)<\/'/
                          let casescontainer = casescontainer_.exec(body)
              
              HomoranH Do not disturb
              HomoranH Do not disturb
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #6

              @sveni_lee sagte in Javascript RegExp ???:

              leider liefert es keine Werte im javascript

              da bin ich leider raus

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Reply Last reply
              0
              • S sveni_lee

                Ich stehe irgendwie mit RegExp auf dem Kriegsfuß.
                ich möchte gern den Inhalt einer webseite parsen und hierbei speziel einen Auschnitt herausfiltern.

                ich möchte gern alles zwischen <p><strong>kumuliert</strong><strong></strong></p> und </tbody> zurückbekommen.

                let casescontainer_ = new RegExp('<p><strong>kumuliert<\/strong><strong><\/strong><\/p>(.+?)<\/tbody>')
                let casescontainer = casescontainer_.exec(inhaltweb)
                

                es kommt aber nur 'null' zurück.

                wo liegt mein Fehler?

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                wrote on last edited by
                #7

                @sveni_lee

                schau mal hier
                https://stackoverflow.com/questions/25097039/use-regex-to-extract-a-chunk-a-table-then-an-array-of-rows

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Reply Last reply
                0
                • S sveni_lee

                  @Homoran
                  danke für deine Mühe- leider liefert es keine Werte im javascript

                              let casescontainer_ = /'ong>([\-\s\.\(\)\&\;\w]+)<\/strong><\/p>[^+]+([+\d\,]+)[^\d]+([\d\.]+)[^\d]+([+\d\,]+)[^\d]+([+\d\,]+)<\/'/
                              let casescontainer = casescontainer_.exec(body)
                  
                  F Offline
                  F Offline
                  fastfoot
                  wrote on last edited by
                  #8

                  @sveni_lee sagte in Javascript RegExp ???:

                  let casescontainer_ = /'ong>

                  Das einfache Anführungszeichen hat da nichts verloren. Auf regex101.com kannst du deine Versuche testen

                  iobroker läuft unter Docker auf QNAP TS-451+
                  SkriptRecovery: https://forum.iobroker.net/post/930558

                  HomoranH 1 Reply Last reply
                  0
                  • F fastfoot

                    @sveni_lee sagte in Javascript RegExp ???:

                    let casescontainer_ = /'ong>

                    Das einfache Anführungszeichen hat da nichts verloren. Auf regex101.com kannst du deine Versuche testen

                    HomoranH Do not disturb
                    HomoranH Do not disturb
                    Homoran
                    Global Moderator Administrators
                    wrote on last edited by
                    #9

                    @fastfoot sagte in Javascript RegExp ???:

                    Auf regex101.com kannst du deine Versuche testen

                    da habe ich das regex her ;-)

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    F 1 Reply Last reply
                    0
                    • HomoranH Homoran

                      @fastfoot sagte in Javascript RegExp ???:

                      Auf regex101.com kannst du deine Versuche testen

                      da habe ich das regex her ;-)

                      F Offline
                      F Offline
                      fastfoot
                      wrote on last edited by
                      #10

                      @Homoran sagte in Javascript RegExp ???:

                      da habe ich das regex her

                      du hattest auch kein Anführungszeichen in deinem Post :-)

                      iobroker läuft unter Docker auf QNAP TS-451+
                      SkriptRecovery: https://forum.iobroker.net/post/930558

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      493

                      Online

                      32.4k

                      Users

                      81.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe