Wątek przeniesiony 2018-08-21 12:06 z C# i .NET przez somekind.

Wyrazenie regularne dla liczb

0

Cześć. Piszę program w Winforms i mam pytanie odnośnie regexów w c#. Jak powinna wyglądać składnia wyrażenia regularnego, które przyjmuje wartości złożone z:

  • 4 cyfr
  • kropki
  • od jednej do czterech cyfr
    Przykłady:
    4444.1
    2222.22
    3333.123
    1234.1234
    Z góry dziękuję za pomoc!
3

https://regex101.com/r/g9BYev/1

[0-9]{4}\.[0-9]{1,4}
0

@fasadin
Kropka powinna być z backslashem, bo inaczej będzie łykać każdy znak. W Twoim wypadku 4444a1 też przechodzi.

0

Sporawdź czy nie Tworzysz buga, może być tak, że będa przychodziły też liczby bez kropki.

0

Nie działa mi to. Łapie w zasadzie wszystko czego nie powinno. Nie wiem czy to ja mam błąd w kodzie.

string paterrn = @"[0-9]{4}\.[0-9]{1,4}";
                            Regex regex = new Regex(paterrn);
                            Match match = regex.Match("44444444.12345");
                            if (match.Success)
                            {
                                MessageBox.Show("TAK");
                            }

Oczywiście wyświetla tak, a nie powinno.

0

@hydrant23: bo musisz ograniczyć to do całych słów/ciągów znaków. Teraz zwraca Ci sukces, bo wewnątrz podanego przykładu masz ciąg znaków, który pasuje.

0

Jak to mogę zrobić? Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1