Chcę wyrażenia regularnego, które będzie akceptowało tylko liczby zmiennoprzecinkowe od 0 do 9 i znak minus.Regex akceptujący liczby zmiennoprzecinkowe i minus (-) znak
Proszę o pomoc.
Chcę wyrażenia regularnego, które będzie akceptowało tylko liczby zmiennoprzecinkowe od 0 do 9 i znak minus.Regex akceptujący liczby zmiennoprzecinkowe i minus (-) znak
Proszę o pomoc.
^[-+]?[0-9]*\.?[0-9]+$
^
- początek napisu[-+]?
- 0 lub 1 wskaźnik znak[0-9]*
- 0 lub więcej liczby całkowite\.
- postać .
(.
jest stosowany w regex oznacza „dowolny znak”)[0-9]+
- 1 lub więcej liczb całkowitych$
- koniec łańcuchaJeśli zamiast za pomocą przecinka jako separatora dziesiętnego użyj ,
zamiast \.
Jeśli używasz zarówno/albo można użyć [.,]
Umożliwia to tylko separator dziesiętny kropki, a nie dowolny znak. Pozbądź się odwrotnego ukośnika, by oznaczać "dowolną postać". Ale wtedy nie byłoby to ważne dla liczby zmiennoprzecinkowej.A twoje ostatnie zdanie powinno wspomnieć '[.,]'. – rmaddy
@rmaddy Myślę, że mylisz się w obu swoich wypowiedziach. Chciałem zezwolić tylko na. jako separator dziesiętny w oryginalnym łańcuchu, dlatego dodałem dodatkowe zdania. Ostatnie zdanie działa zarówno z [.,], Jak i [\.,] Przynajmniej na http://regexpal.com –
Każde wyrażenie regularne, z jakim kiedykolwiek pracowałem, po prostu wstawiałeś '[.,]', A nie ' [\.,] '. Ale nie pracowałem z każdym możliwym silnikiem regex. Musiałem źle odczytać coś, gdy komentowałem, ponieważ kiedy patrzę teraz na twoją odpowiedź, większość mojego komentarza nie ma zastosowania. Od czasu skomentowania musiałem to zmienić. – rmaddy
Wypróbuj ^[-+]?[0-9]*[.,]?[0-9]+$
.
To wyrażenie regularne będzie pasowało do opcjonalnego znaku, po którym następuje zero lub więcej cyfr, po których następuje kropka i jedna lub więcej cyfr (liczba zmiennoprzecinkowa z opcjonalną częścią całkowitą), lub po której następuje jedna lub więcej cyfr (Liczba całkowita).
Źródło: http://www.regular-expressions.info/floatingpoint.html - zmieniony pracować z przecinkiem jako separator dziesiętny
To nie zadziała w ustawieniach regionalnych, które używają separatora dziesiętnego innego niż kropka. – rmaddy
Dzięki, edytowane. –
Pozwala to obecnie na użycie dowolnego znaku jako separatora. '\ .' –
Co pan spróbować? Z czym masz problem? – SLaks
Który separator dziesiętny używasz: ',', '.' lub jedno z nich? –
możliwy duplikat [Regex dla zmiennoprzecinkowej?] (Http://stackoverflow.com/questions/9186780/regex-for-floating-point) –