Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 0
  • 377

Dzień dobry.

Przepraszam, moja prośba jest pewnie banalna, ale nie pracuję na co dzień z XML i mam problem z odczytaniem pewnej walidacji:

Jak będzie pracować walidacja : [1-9] (  (\d[1-9])  |   ([1-9]\d) )   \d{7}  

Nie rozumiem do końca dlaczego mamy tu konstrukcję  \d  raz z lewej strony zakresu, a raz z prawej. I czemu \d poprzedza iterację {7}?   

Pozdrawiam.
Lesław Piwowarski.

 

Lesław_Piwowarski
  • Zapytał
  • @ Lesław_Piwowarski | 11.07.2016
    • 1
    • 1
    • 2
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (2)

  • 0

Jest to przykład wyrażenia regularnego.

Zapis [1-9] oznacza dowolną cyfrę między 1 a 9 (tzn. dowolną cyfrę z wyłączeniem zera).

Zapis \d oznacza dowolną cyfrę (digit) i jest równoważny wyrażeniu [0-9].

Nawiasy okrągłe definiują sekwencję, a więc ciąg znaków, który musi wystąpić dokładnie w podanej kolejności.

Symbol | określa alternatywę.

Wreszcie nawiasy klamrowe umożliwiają określenie kwantyfikatora, tzn. krotności wystąpień poprzedzającego znaku.

Podsumowując: do podanego wyrażenia pasuje następujący ciąg znaków:

  • Na początku: jedna cyfra bez zera.
  • Dalej: dowolna cyfra za którą jest cyfra bez zera lub na odwrót - cyfra bez zera, za którą jest dowolna cyfra.
  • Wreszcie na końcu: powinno się znaleźć 7 dowolnych cyfr.
  • Odpowiedział
  • @ | 19.08.2016
  • TRENER MODERATOR ALTKOM AKADEMII
  • 0

Bardzo dziękuję.

Konstrukcja której nie rozumiałem to (\d[1-9])  |   ([1-9]\d) ).

Widzę, że stosuje się ją tam gdzie na dwóch pozycjach jednocześnie nie może wystąpić znak 0  (czyli "00").

Lesław_Piwowarski
  • Odpowiedział
  • @ Lesław_Piwowarski | 22.08.2016
    • 1
    • 1
    • 2