4 Stimmen

Wie kann man einen mehrstelligen Zahlenbereich mit Ruby regex abgleichen?

Ich versuche, einen Timecode im Format von "0000" bis "2459" abzugleichen. Wie kann ich Zahlen in einem bestimmten Bereich abgleichen, so dass ich speziell alle Zahlen zwischen 0 und 24 und alle Zahlen zwischen 0 und 59 abgleichen könnte, und nichts Größeres oder Kleineres?

Ich weiß, wie ich jede einzelne Ziffer abgleichen kann, aber das bringt nicht das, was ich will, denn zum Beispiel

/[0-2][0-4]/

würde die Nummern 0-4, 10-14 und 20-24 erfassen und die dazwischen liegenden Nummern auslassen. Ich möchte also alles inklusive für mehrere Ziffern erfassen.

12voto

Das Folgende sollte genügen:

/(?:[01][0-9]|2[0-4])[0-5][0-9]/

Erläuterung:

  • Le site ?: macht die Klammern nicht fassbar.
  • In den Klammern wird einfach entweder 00-19 oder 20-24 angegeben.
  • Danach stimmen wir mit 00-59 überein.

0voto

gsid Punkte 470

Sebastians Antwort scheitert, wenn code MOD 10 > 59 . Zum Beispiel würde es nicht erkennen 1080

Verwenden Sie /(?:[01][0-9][0-9]|2(?:[0-3][0-9]|4[0-5]))[0-9]/ stattdessen, die eine 4-stellige Zahl annimmt, die entweder mit

  • mit 0 oder 1, ODER
  • mit 23, OR
  • mit 245

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X