Próbuję napisać wyrażenie regularne, które będzie dopuszczać tylko małe litery i maksymalnie 10 znaków. To, co do tej pory mam, wygląda następująco:
pattern: /^[a-z]{0,10}+$/
To nie działa ani się nie kompiluje. Miałem działający, który pozwalałby na pisanie małymi literami:
pattern: /^[a-z]+$/
Ale muszę ograniczyć liczbę znaków do 10.
^[a-z]{0,10}+$
kompiluje się w niektórych językach, a niektóre z nich to Java, Perl (5.10+), PHP, Ruby (1.9+). Zobacz tę stronę, aby uzyskać więcej szczegółów.Odpowiedzi:
Za pomocą nawiasów klamrowych można kontrolować liczbę wystąpień. Na przykład oznacza to od 0 do 10:
Dostępne są następujące opcje:
Zobacz odwołanie do wyrażenia regularnego .
Twoje wyrażenie miało znak + po zamykającym nawiasie klamrowym, stąd błąd.
źródło
^
dopasowania właściwości TYLKO żądań o nazwie takiej jak1234
lub5678
, i musiałem dołączyć znak $/^[a-z]{0,10}$/
powinno działać./^[a-z]{1,10}$/
jeśli chcesz dopasować co najmniej jedną postać, podobnie jak/^[a-z]+$/
.źródło
Dobrym rozwiązaniem może być dodanie chciwego dopasowania na końcu łańcucha, abyś mógł zaakceptować łańcuchy> 10, a wyrażenie regularne zwróci tylko pierwsze 10 znaków.
/^[a-z0-9]{0,10}$?/
źródło
To bardzo zależy od używanego programu. Różne programy ( Emacs , vi , sed i Perl ) używają nieco innych wyrażeń regularnych. W tym przypadku powiedziałbym, że w pierwszym wzorze należy usunąć ostatni znak „+”.
źródło
Podaje liczby z dokładną liczbą dopasowań z limitem
źródło