Jest to oczywisty przypadek "robisz to źle". I w rzeczywistości nie zamierza robić tego, ale rozmowa w pracy zachęciły to pytanie:Używanie wyrażeń regularnych do porównywania numerów
można wygenerować wyrażenie regularne, aby określić, czy liczba całkowita jest mniejsza niż arbitralne wartości.
Dla niektórych wartości jest to łatwe. Dla liczb całkowitych mniejszych niż 1000, \ d {1,3} powinno wystarczyć. Dla liczb całkowitych < 500, jest nieco trudniejsze, ale nie takie złe, jak możesz użyć [0-4] {0,1} \ d {1,2}.
Gdy dojdziesz do wartości arbitralnych, staje się on znacznie trudniejszy. Na przykład wszystkie liczby mniejsze niż 255 będą miały wartość \ d {1,2} | [0-1] \ d {2} | [2] [0-4] \ d | [2] [5] [0-4].
Czy istnieje jedno wyrażenie regularne, które działa tutaj? Czy musisz programowo wygenerować wyrażenie regularne?
(I znowu, chciałbym zwrócić uwagę, że nie mam zamiaru faktycznie to robi. Oczywiście przy użyciu „foo < bar” w swoim ulubionym języku programowania jest o wiele bardziej wydajny i łatwy do odczytania.)
Można połączyć te trzy wyrażenia masz dostać ani jednego, czy to jest to, co masz na myśli. – Dervall