Autor | Zpráva | ||
---|---|---|---|
silvestr Profil * |
#1 · Zasláno: 29. 12. 2007, 18:49:39
ahoj všem,
snažím se vytvořit regulární výraz pro barvy rgb včetně čárek, takže správný a povolený zápis by byl: "0-255,0-255,0,255" ... udělal jsem tohle: ^[0-2]?[0-5]?[0-5]+(\,[0-2]?[0-5]?[0-5])+(\,[0-2]?[0-5]?[0-5])$ ale má to dost chyb a já nevím jak na ně. Zaprvý člověk může dát 25555,25555,25555 a regulárním výrazem to projde + desítková čísla jsou jen do 50, což by nebyl problém, ale nechci, aby bylo dovolený 299 ale jen 255, takže asi nějaká podmínka. Nevím. Pomožte mi prosím. Děkuju |
||
Joker Profil |
#2 · Zasláno: 29. 12. 2007, 19:28:38
Je nutné to dělat regulárním výrazem?
Co to prostě explodovat čárkou, jednotlivé části převést na číslo a zkontrolovat? |
||
Mastodont Profil |
#3 · Zasláno: 29. 12. 2007, 19:45:33
silvestr
AFAIK číselný interval nelze v reguláru vyjádřit. Takže viz Joker. |
||
silvestr Profil * |
#4 · Zasláno: 29. 12. 2007, 20:21:46
Joker
mno příjde mi to lepší, než 3x kontrolovat hodnotu Mastodont proč by to nešlo? |
||
tiso Profil |
#5 · Zasláno: 29. 12. 2007, 20:54:46
Mastodont - ale ide, len trošku zložitejšie:
$pattern='([0-9]{1}|[1-9]{1}[0-9]{1}|1[0-9]{2}|2[0-4]{1}[0-9]{1}|25[0 -5]{1})'; preg_match('/^'.$pattern.'\,'.$pattern.'\,'.$pattern.'$/', $subject, $matches); |
||
silvestr Profil * |
#6 · Zasláno: 29. 12. 2007, 21:04:08
wow, seš machr, budu to dlouho studovat, než to pochopím, ale funguje to, děkuju moc
|
||
silvestr Profil * |
#7 · Zasláno: 29. 12. 2007, 21:28:05
trošku jsem ho zkrátil:
$pattern= '([0-9]{1}|[0-9]{2}|1[0-9]{1}[0-9]{1}|2[0-5][0-5])'; :-) |
||
tiso Profil |
#8 · Zasláno: 29. 12. 2007, 21:29:58 · Upravil/a: tiso
silvestr - to ti zase nepôjde...
Nie je to nič ťažké, stačilo rozdeliť čísla na 0-9, 10-99, 100-199, 200-249 a 250-255 a pre ne vytvoriť jednotlivé subvýrazy. |
||
silvestr Profil * |
#9 · Zasláno: 29. 12. 2007, 22:05:07
pro tu dvoustovku stačí jen 2[0-5][0-5] , ne? proč jí dělíš na dva 200-249 a 250-255 ?
|
||
Mastodont Profil |
#10 · Zasláno: 29. 12. 2007, 22:15:45
Protože 227, 228, 249 apod.
|
||
silvestr Profil * |
#11 · Zasláno: 29. 12. 2007, 22:28:04
jasně, teď mi to docvaklo! díky díky díky moc hlavně tiso
|
||
Časová prodleva: 16 let
|
0