Gunnar Bittersmann: Regulärer Ausdruck gesucht

Beitrag lesen

@@Jonny 5

Ich bin jedenfalls gespannt auf deine "reguläre" Version.

Dann werd ich mal nicht lumpen lassen.

^((0[1-9]|1[0-9]|2[0-8])[./-](0[1-9]|1[0-2])|(29|30)[./-](0[13-9]|1[0-2])|31[./-](0[13578]|1[02]))[./-][0-9]{4}|29[./-]02[./-]([0-9]{2}(0[48]|[2468][048]|[13579][26])|([02468][048]|[13579][26])00)$

Aufgedröselt:

^                                                # Anfang
(
  ( 0[1-9] | 1[0-9] | 2[0-8] )                   # 01. bis 28. Tag
  [./-]                                          # Trennzeichen ('.', '/' oder '-')
  ( 0[1-9] | 1[0-2] )                            # 01. bis 12. Monat
  
  |                                              # oder
  
  ( 29 | 30 )                                    # 29. bis 30. Tag
  [./-]                                          # Trennzeichen
  ( 0[13-9] | 1[0-2] )                           # 01. oder 03. bis 12. Monat (nicht Februar)
  
  |                                              # oder
  
  31                                             # 31. Tag
  [./-]                                          # Trennzeichen
  ( 0[13578] | 1[02] )                           # 01., 03., 05., 07., 08., 10.
                                                 # oder 12. Monat
)
[./-]                                            # Trennzeichen
[0-9]{4}                                         # Jahr

|                                                # oder

29[./-]02[./-]                                   # 29.02.
(
  [0-9]{2} ( 0[48] | [2468][048] | [13579][26] ) # beliebiges Jahrhundert,
                                                 # durch 4 teilbares Jahr
                                                 # außer volle Jahrhunderte

  |                                              # oder

  ( [02468][048] | [13579][26] ) 00              # durch 4 teilbares Jahrhundert
)
$                                                # Schluss

Anmerkungen:

  • ( ) dienen hier nur zur Klammerung, nicht zum Merken von Teilen. In Implementationen wäre dafür (?: ) zu verwenden.

  • Der Ausdruck prüft nicht, ob zwischen Tag/Monat und Monat/Jahr dasselbe Trennzeichen steht. Wie das zu bewerkstelligen wäre, hatte ich damals schon angesprochen.

  • Im Gegensatz zu damals ist dieser Ausdruck nicht für die Ewigkeit, sondern nur für die Jahre 0000 bis 9999. Danach wird die Menschheit bestimmt nicht mehr dieses recht unsinnige Datumsformat verwenden, sondern das wohlgeordnete yyyy-mm-dd.

  • Zur Validierung eines Datums wird die Menschheit nicht reguläre Ausdrücke verwenden und Zeichenketten untersuchen, sondern die Zahlen prüfen.

LLAP 🖖

--
“You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
0 80

php: Regulärer Ausdruck gesucht

Lukas.
  • regex
  1. 0

    Regulärer Ausdruck gesucht

    Auge
    • php
    • regex
    1. 0
      Gunnar Bittersmann
      • regex
      1. 1
        Auge
        1. 0
          Gunnar Bittersmann
          1. 0
            Auge
            1. 0
              Matthias Apsel
              1. 0
                Gunnar Bittersmann
            2. 0
              Gunnar Bittersmann
              1. 0
                Auge
                1. 0
                  Matthias Apsel
                  1. 0
                    Der Martin
                    1. 0
                      Gunnar Bittersmann
                  2. 0
                    Auge
                  3. 0
                    JürgenB
                    • menschelei
                    1. 0
                      woodfighter
                      1. 0
                        MudGuard
                        1. 0
                          woodfighter
                      2. 0
                        Matthias Apsel
                        1. 0
                          Der Martin
                          1. 0
                            Matthias Apsel
                          2. 0
                            woodfighter
                        2. 0
                          Auge
                          1. 0
                            Matthias Apsel
                          2. 0
                            woodfighter
                        3. 0
                          MudGuard
                          1. 0
                            Auge
                            1. 0
                              Der Martin
                              1. 0
                                Matthias Apsel
                                1. 0
                                  Der Martin
                                  1. 0
                                    Matthias Apsel
                                  2. 0
                                    MudGuard
                                2. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Matthias Apsel
                                    1. 0
                                      Der Martin
                                      1. 0
                                        Matthias Apsel
                                3. 0
                                  MudGuard
                              2. 0
                                Auge
                          2. 0
                            Matthias Apsel
              2. 0
                Rolf b
                1. 0
                  Gunnar Bittersmann
                  • zu diesem forum
                  1. 0
                    Matthias Apsel
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Matthias Apsel
                        1. 0
                          Christian Kruse
                          1. 0
                            Auge
                            • menschelei
                            • zu diesem forum
                            1. 0
                              Matthias Apsel
                              1. 0
                                Gunnar Bittersmann
                                1. 0
                                  Matthias Apsel
                                2. 0
                                  Matthias Apsel
                              2. 0
                                Auge
                  2. 0
                    Christian Kruse
                    1. 0
                      Rolf b
            3. 1
              Jonny 5
              1. 0
                Gunnar Bittersmann
                1. 0
                  Jonny 5
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Jonny 5
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          Jonny 5
                          1. 2
                            Gunnar Bittersmann
                            1. 0
                              Der Martin
                              1. 0
                                Gunnar Bittersmann
                                • sprache
                                1. 0
                                  Der Martin
                                  1. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Matthias Apsel
                                      1. 0
                                        Gunnar Bittersmann
                                    2. 0
                                      Der Martin
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          Gunnar Bittersmann
                                        2. 0
                                          Der Martin
                                  2. 0
                                    MudGuard
                                    1. 0
                                      Der Martin
                            2. 0
                              Jonny 5
                              1. 0
                                Tabellenkalk
  2. 0
    Lukas.
  3. 0
    Felix Riesterer
  4. 0
    dedlfix
    • php
    • regex
    1. 0
      Lukas.
      1. 0
        dedlfix