Wyrażenia regularne (łatwe) |
Wyrażenia regularne (łatwe) |
18.06.2013, 07:02:00
Post
#1
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) |
Witam, mam tak:
([0-9]) i to jest dowolna liczba od 0 do 9, a jak dać, dowolną liczbę z dowolnego zakresu? Ten post edytował Kmils21 18.06.2013, 08:35:11 -------------------- |
|
|
18.06.2013, 07:26:35
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
Cytat (...) i to jest dowolna liczba od 0 do 10 (...) Oj nie... To jest dowolna liczba z zakresu 0 - 9 innymi słowy jedna dowolna cyfra. Nie możesz określić konkretnego zakresu jak na przykład 0-1500 Ale możesz określić ile minimalnie i maksymalnie może znaleźć się cyfr. Na przykład: [0-9]+ oznacza minimum jedną cyfrę, maksimum nieokreślone czyli np.: 1, 22, 333, 4444 itd [0-9]{3,5} oznacza minimum 3 cyfry maksimum 5 czyli np.: 345, 5678, 67890 itp ale już 1 czy 22 nie przejdzie Ogólny zapis to [znaki]{minimum,maksimum} Poczytaj o wyrażeniach trochę - źle je chyba rozumiesz -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
18.06.2013, 08:10:51
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Teoretycznie w sumie może, tylko przepuści też "0400"
\b[0-1][0-5][0-9]{1,2}\b Nie znam się dobrze na wyrażeniach regularnych, więc nie wiem czy można jakoś to jeszcze obejść, żeby nie przepuszczało "0400" itp. |
|
|
18.06.2013, 08:16:34
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
W jakimś "przybliżeniu" może i by się dało - ale to już łamanie głowy
Taki zakres 0-1500 nie jest łatwo zobrazować bo wchodzą w grę liczby 1 cyfrowe, 2 cyfrowe, 3 cyfrowe i 4 cyfrowe mniejsze od 1501 - to naprawdę mega zadanie napisać to na regexach jedyne co mi przychodzi na myśl to OR'owanie: Kod #([0-9])|([123456789][0-9])|([123456789][0-9]{2})|(1[0-4][0-9]{2})|(1500)# Niby się da... -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
18.06.2013, 08:38:01
Post
#5
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) |
Wiem że 0-9, musiałem zrobić literówkę, a raczej liczbówkę
Musiałem mieć w innym miejscu błąd i nie działało mi ([0-100]), a taki zakres chciałem. Teraz już działa, niestety nie umiem zlokalizować co zmieniłem. Dzięki Ten post edytował Kmils21 18.06.2013, 08:38:25 -------------------- |
|
|
18.06.2013, 08:55:45
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) |
Wiem że 0-9, musiałem zrobić literówkę, a raczej liczbówkę Musiałem mieć w innym miejscu błąd i nie działało mi ([0-100]), a taki zakres chciałem. Teraz już działa, niestety nie umiem zlokalizować co zmieniłem. Dzięki A co to jest? [0-100]. Owy "zakres" nie polega na stricte zakresie liczbowym, tylko definiuje zakres znaków, które mogą się znaleźć na określonej pozycji ciągu. Tak więc 0-9 jest OK, ale już 0-100 nie ma prawa bytu. Bo oznacza tyle, że możesz wprowadzić liczbę 100 lub 000. 0-1 dopuszcza tylko 0 i 1, natomiast pozostałe dwa znaki muszą być zerami jeśli wprowadzony ciąg ma pasować do wyrażenia. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
18.06.2013, 09:22:38
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
A może po prostu:
-------------------- |
|
|
18.06.2013, 11:32:02
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) |
@markonix, doskonały pomysł!
...żeby sprawić, aby coś nie działało.
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
18.06.2013, 12:00:12
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
hehe to ja dorzucę że jeśli to by było tak:
to by zadziałało nawet chyba -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
18.06.2013, 14:57:27
Post
#10
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) |
Cytat A co to jest? [0-100]. Owy "zakres" nie polega na stricte zakresie liczbowym, tylko definiuje zakres znaków, które mogą się znaleźć na określonej pozycji ciągu. Tak więc 0-9 jest OK, ale już 0-100 nie ma prawa bytu. Bo oznacza tyle, że możesz wprowadzić liczbę 100 lub 000. 0-1 dopuszcza tylko 0 i 1, natomiast pozostałe dwa znaki muszą być zerami jeśli wprowadzony ciąg ma pasować do wyrażenia. Zatem zlamiłem. Jak mam to zrobić? Internety mówią, że może być tak: Kod ([\d])
Ten post edytował Kmils21 18.06.2013, 15:00:11 -------------------- |
|
|
18.06.2013, 15:19:38
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) |
Zatem zlamiłem. Jak mam to zrobić? Internety mówią, że może być tak: Kod ([\d]) Nie wiem co chcesz osiągnąć, ale jeśli chcesz za pomocą wyrażenia regularnego znaleźć liczby z zakresu od 0 do 100 to troszkę się z tym pobawisz. Jeśli natomiast służy Ci to wyłącznie do walidacji jakichś pól (np. danych od użytkownika) to PHP i jeden if załatwi sprawę. W jakim celu chcesz znaleźć wyrażeniem regularnym liczbę od 0 do 100? -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
19.06.2013, 18:15:09
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
@markonix, doskonały pomysł! ...żeby sprawić, aby coś nie działało.
Czytałem kilka razy - nigdzie nie jest mowa o jakimś stringu zawierającym liczby. Niech po prostu autor się bardziej określi. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 18:16 |