![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.12.2008 Skąd: Dublin - Ireland Ostrzeżenie: (0%) ![]() ![]() |
Dla kogoś kto jest obcykany w temacie to będzie śmiesznie proste ale ja nie korzystałem dotychczas z preg_match i proszę o pomoc. Mam ciąg znaków, który powinien składać się wyłącznie z cyrf oraz znaków przecinka, np. "34,5,15,6,122,10,1,8".
Ponadto pierwszy i ostatni znak powinny być cyframi. Jak napisać pod to preg_match ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz wykorzystać explode" title="Zobacz w manualu PHP" target="_manual?
Ten post edytował bim2 2.04.2009, 15:22:33 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie jestem pewny ale spróbuj coś takiego
Ten post edytował zzeus 2.04.2009, 15:30:18 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.12.2008 Skąd: Dublin - Ireland Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz wykorzystać explode" title="Zobacz w manualu PHP" target="_manual? A co w przypadku gdy ciąg będzie taki: "2,45,64,d3,aaa,dupa|1" ? Sorry, zapomniałem dodać, że ciąg może się również składać z pojedynczej cyfry lub liczby i też będzie poprawny więc poprawne będzie np: "3,67,1,8" ale też samo "3" lub "333" |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
dalej explode ;p + ewentualnie filtr tablicy
![]() -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.12.2008 Skąd: Dublin - Ireland Ostrzeżenie: (0%) ![]() ![]() |
Nie chcę explode. Chcę preg_match.
Zapomniałem jeszcze dodać, że prawidłowy ciąg może się również składać z pojedynczej cyfry lub liczby. Czyli poprawne będzie np: "1,34,8,99,121" ale też "3" lub "333" Niepoprawne będzie np: ",1,34,8,99,121" - "333," - "4,5,6,a" - "" |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Takim tonem "Nie chce... Chce" i żądania później to w dziale ofert. Nie tutaj. Pokaż co napisałeś, a pokażemy błąd.
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 217 Pomógł: 40 Dołączył: 20.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale ignorant, przecież rozbić ten ciąg explode i potem sprawdzić każdą komórkę otrzymanej tablicy pod względem poprawności będzie o wiele prościej.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.12.2008 Skąd: Dublin - Ireland Ostrzeżenie: (0%) ![]() ![]() |
To nie miało być "takim tonem". Po prostu uważam, że w tym przypadku preg_match będzie dużo bardziej elegancka niż rozwalanie ciągu za pomocą explode i badanie każdego elementu.
Po co mam pisać kilka linii kodu jak wystarczy jedna, która jest czytelniejsza i wydajniejsza. Myślę, że wystarczająco opisałem problem. Nie pokażę co napisałem bo nic nie napisałem. Opisałem problem i czekam aż jakaś mądra głowa pomoże mi go rozwiązać. Ten post edytował koziet 2.04.2009, 16:34:19 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 217 Pomógł: 40 Dołączył: 20.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak chcesz to zrobić skoro nie wiesz ile takich elementów będziesz miał, jakieś propozycje?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 16.12.2008 Skąd: Dublin - Ireland Ostrzeżenie: (0%) ![]() ![]() |
Skoro nie wiesz to po co nabijasz sobie punkty na forum?
A co do propozycji to wystarczy określić warunek, że pierwszy i ostatni znak w ciągu muszą być cyframi [0-9] a wszystko co pomiędzy nimi to albo cyfry albo znak przecinka tylko, że nie wiem jak utworzyć taki pattern dla preg_match() Już sam sobie poradziłem:
Ten post edytował koziet 2.04.2009, 20:28:07 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ale ignorant, przecież rozbić ten ciąg explode i potem sprawdzić każdą komórkę otrzymanej tablicy pod względem poprawności będzie o wiele prościej. ignorant to moze jestes ty.... poto wymyslono wyrazenia regularne by w latwy sposob sprawdzic tekst a nie bawic sie w kombinacje z explode , latanie w petli po elementach i sprawdzanie kazdego po kolei.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 17 Dołączył: 8.11.2008 Skąd: Libiąż Ostrzeżenie: (0%) ![]() ![]() |
Który i tak trzeba byłoby sprawdzić w preg_match'em :]
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Ja bym natomiast zaproponował wyrażenie :
#^[0-9]([0-9,]*[0-9])?$#si Obejmuje ono również przypadki gdu nie ma żadnego przecinka. Można to szybko sprawdzić uruchamiają poniższy skrypt :
-------------------- Każdy z was jest łodzią w której Może się z potopem mierzyć Cało wyjść z burzowej chmury Musi tylko w to uwierzyć! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 01:59 |