Rolf B: Nochmal Regex gesucht

Beitrag lesen

Hallo Pit,

ich sehe das nicht so negativ wie Jörg (ursus fastixiabundo :) ).

Wenn Du die einleitenden Codes separat haben willst, kannst Du das so machen:

/^(?<startwort>AB[\w\d]+)\s+(?<startplus>(AB[\w\d]+\s+)+)(?<vorwort>.*)\s+(?<zahl>\d+)\s+(?<wort>\w+)\s+(?<betrag>[\d.,]+)\s*$/

Ich habe mal deine Aussage eingebaut, dass die Codewörter am Zeilenanfang immer mit AB starten. Und ich habe auf \w und \d umgestellt, statt [A-Z] und [0-9]. Ist vermutlich besser so. Es matcht dann auf jeden Fall auch die Kleinbuchstaben, und je nach locale-einstellungen auf deinem Server auch Akzentzeichen (áàâä und Familie)

Zerlegt in die einzelnen Teile:

^                                  Zeilenstart
(?<startwort>AB[\w\d]+)            Erstes AB238423 Wort -> $matches['startwort']
\s+                                Leerraum
(?<startplus>(AB[\w\d]+\s+)+)      1-N AB293482309 Worte -> $matches['startplus']
(?<vorwort>.*)                     Freitext -> $matches['vorwort']
\s+                                Leerraum
(?<zahl>\d+)                       Int-vor dem letzten Wort -> $matches['zahl']
\s+                                Leerraum
(?<wort>\w+)                       letztes Wort -> $matches['wort']
\s+                                Leerraum
(?<betrag>[\d.,]+)                 Betrag -> $matches['betrag']
\s*                                optionaler Leerraum
$                                  Zeilenende

Für mich ist bei solchen Aufgaben die Seite regex101.com sehr hilfreich. Da bekommst Du erklärt, was die Regex tut, und kannst sie ausprobieren.

Rolf

--
sumpsi - posui - clusi
0 71

Nochmal Regex gesucht

Pit
  • regex
  1. 0
    ursus contionabundo
    1. 0
      ursus contionabundo
    2. 0
      Pit
      1. 0
        Matthias Apsel
        1. 0
          Pit
          1. 0
            ursus contionabundo
            1. 0
              Pit
              1. 0
                Rolf B
                1. 0
                  Pit
                  1. 0
                    Rolf B
                    1. 0
                      Pit
                  2. 0
                    Rolf B
                    1. 0
                      Pit
                      1. 0
                        Rolf B
                        1. 0
                          Matthias Apsel
                          1. 0
                            Pit
                            1. 0
                              Rolf B
                              1. 0
                                Pit
                                1. 0

                                  So geht es fast...

                                  Pit
                                  1. 0

                                    Diese Zeile krieg ich nicht gematcht

                                    Pit
                                    1. 0
                                      ursus contionabundo
                                      1. 0
                                        Pit
                                        1. 0
                                          Self-Nachtwächter
                                          • programmiertechnik
                                          • programmplanung
                                          • regex
                                          1. 0
                                            Rolf B
                                            1. 0
                                              Pit
                                              1. 0

                                                Lösungsalternative: pdftotext

                                                ursus contionabundo
                                          2. 0
                                            Pit
                                            1. 0

                                              Diese Zeile krieg ich nicht gematcht - weitere Vereinfachung

                                              ursus contionabundo
                                    2. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        Pit
                                        1. 0
                                          Gunnar Bittersmann
                                          1. 0
                                            Pit
                                            1. 0
                                              Rolf B
                                              1. 0
                                                Pit
                                                1. 0
                                                  MudGuard
                                                2. 0
                                                  Pit
                                                  1. 1
                                                    Pit
                        2. 0
                          Pit
                        3. 0
                          Pit
                          1. 0
                            Pit
                            1. 0
                              Rolf B
                              1. 0
                                Pit
                  3. 0

                    Nach Deinen Ergänzungern verbesserte Lösung

                    ursus contionabundo
                    1. 0
                      Pit
                      1. 0
                        ursus contionabundo
                        1. 0
                          Pit
                          1. 0

                            Tips zur Fehlersuche

                            ursus contionabundo
                            • php
                            1. 0
                              Pit
                              1. 0

                                Du bist nicht allein ...

                                ursus contionabundo
                                1. 0
                                  Pit
                  4. 0
                    Gunnar Bittersmann
                    1. 0
                      Pit
                      1. 0
                        Gunnar Bittersmann
              2. 0

                Vorhersehbar untauglicher Lösungsversuch

                ursus contionabundo
              3. 0
                pl
          2. 0
            Matthias Apsel
            1. 0
              Pit
          3. 0
            beatovich
            1. 0
              Pit
      2. 0
        pl
        1. 0
          Pit
          1. 0
            Mitleser
            • meinung
            • regex
          2. 0
            pl
            1. 0
              Rolf B
              1. 0
                pl
                1. 0
                  Rolf B
                  1. 0
                    pl
            2. 0
              Gunnar Bittersmann
      3. 0
        dedlfix
        1. 0
          Pit