Pomoc w zbudowaniu wyrażenia regularnego

Pomoc w zbudowaniu wyrażenia regularnego
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć
Mam gorąca prośbę o pomoc w zbudowaniu regexa. Próbuję zrobić walidację na polu tekstowym, gdzie będę dopuszczał tylko zero lub liczbę 3 cyfrową niepoprzedzoną zerem lub liczbę czterocyfrową niepoprzedzoną zerem.

Generalnie regex na zero to łatwizna: "^[0]$".
Regex na liczbę trzycyfrową niepoprzedzoną zerem lub czterocyfrową niepoprzedzoną zerem też proste: "^[1-9][0-9]{2}[0-9]?$"

Pytanie z gwiazdką brzmi jak to połączyć w jednym wyrażeniu operatorem "|"? Z pewnych względów zależy mi (jeśli to możliwe) żeby zmieścić to w jednym wyrażeniu (bo wiem, że mógłbym stworzyć dwa oddzielne wyrażenia i porównać string z oboma jak poniżej):

Kopiuj
 
if(Regex.IsMatch(text,regex1) && (Regex.IsMatch(text,regex2))
{
   ...instrukcje...
}

Da się połączyć dwa wyrażenia w jednym?

  • Rejestracja: dni
  • Ostatnio: dni
0

Dobra. można zamknąć lub nawet skasować temat. Po prostu było to zbyt proste ;)

odpowiedź brzmi: "(^[0]$)|(^[1-9][0-9]{2}[0-9]?$)"

Pozdrawiam

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

IMHO tak będzie jeszcze prościej: (^0$)|(^[1-9]\d{2,3}$).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.