Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
MelkorNemesis
Založen: 27. 10. 2007 Příspěvky: 12
|
Zaslal: 27. listopad 2007, 18:20:46 Předmět: Javascript |
|
|
Zdravim, mam takovy problem...
mam regulerni vyraz, ktery ma zjistit, jestli obsahuje input (heslo) znak, cislo, i specialni znak zaroven - &&.
kód: |
(\d+\w+|\w+\d+)
(\d+\w+|\w+\d+)[^$.[]|()\?\*\+{\:;@°<>-\%#&!~\_=}] |
tyhle dva vyrazy potrebuji spojit do jednoho regexpu, muze mi nekdo prosim rict jak?
takhle to udajne nejde
kód: |
/(\d+\w+|\w+\d+)[^$.[]|()\?\*\+{\:;@°<>-\%#&!~\_=}]/ |
diky |
|
Návrat nahoru |
|
|
Tutchek
Založen: 28. 07. 2007 Příspěvky: 140 Bydliště: Praha -Pankrác
|
Zaslal: 28. listopad 2007, 04:17:15 Předmět: |
|
|
a) Regularni vyraz....
b) Predmet nema byt javascript, mas daleko teoreticky obecnejsi problem....
tak a ted tvuj pozadavek... mno.... spatne hochu, spatne... sice ti asi nepomuze informace, ze regularni vyraz je mapovatelny na konecny automat...
a co si budem rikat, ono to jde... ale bude to nepekne... ale tak jako... co je tvym cilem... ty chces aby na vstupu byl retezec co obsahuje cislo, specialni znak a pismeno
ten automat, to si predstav jako vecicku, ktera chrousta jedno pismenko za druhym a meni svuj stav.. proste rozsviti odpovidajici kontrolku...
tak... precte prvni pismenko.. jake ma moznosti? bud je to cislo.. nebo pismenko.... nebo specialni znak... nebo neco jineho...
pokud je to neco jineho, tak mu je to jedno.. chceme jednu z tech tri... tak at precte cislo.... v tu chvili uz ho cisla nezajimaj.. nejaky tam je a to je vse.. ted ho zajimaji jen pismena a specialni znaky.... mno jo... ale co kdyz ted precte pismeno... to uz ho zajima jen specialni znak.... ten nahodou precte (zbytek ignoruje) a vysledkem je ze dosel do koncoveho stavu (to je takovy stav stroje, kdy se ozve cinknuti zvonku a ty vis ze mas co jsi chtel) (jeste uceneji se da rict, ze automat rozpoznava slova regularniho jazyka a v pripade ze dojde do koncoveho stavu, tak takove slovo prijal... co je reularni jazyk se ted neptej.. snad ti bude stacit ze se pro to da napsat napr. reg. vyraz)
zpet k problemu.... nas automat prave rozpoznal slovo v tomto tvaru
COKOLIV* CISLO COKOLIV* PISMENO COKOLIV* SPECZNAK COKOLIV*
* znamena "libovolny pocet"
ale kdyby na zacatku precetl nejprva pismeno mel by to slovo prijmout taky... tzn by mel prijimat i slova ve tvaru
COKOLIV* PISMENO COKOLIV* CISLO COKOLIV* SPECZNAK COKOLIV*
pokud se nad tim dale zamyslis, tak by ten stroj mel prijmout slova z nasledujiciho jazyka:
kód: |
L = { w | w = "COKOLIV* CISLO COKOLIV* PISMENO COKOLIV* SPECZNAK COKOLIV*"
NEBO
w = "COKOLIV* CISLO COKOLIV* SPECZNAK COKOLIV* PISMENO COKOLIV*"
NEBO
w = "COKOLIV* PISMENO COKOLIV* CISLO COKOLIV* SPECZNAK COKOLIV*"
NEBO
w = "COKOLIV* PISMENO COKOLIV* SPECZNAK COKOLIV* CISLO COKOLIV*"
NEBO
w = "COKOLIV* SPECZNAK COKOLIV* CISLO COKOLIV* PISMENO COKOLIV*"
NEBO
w = "COKOLIV* SPECZNAK COKOLIV* PISMENO COKOLIV* CISLO COKOLIV*"
} |
tzn vsechny permutace toho co chces... tedy.. by ten regularni vyraz mohl vypadat stylem
kód: |
"( ([0-9].*[a-z].*X)|([0-9].*X.*[a-z])|([a-z].*[0-9].*X)|([a-z].*X.*[0-9])|(X.*[0-9].*[a-z])|(X.*[a-z].*[0-9]) )" |
za X dosad kvalifikator pro specialni znak, verim tomu ze zvladnes pripadne kvalifikator pro pismeno [a-z] nahradit odpovidajicim kvalifikatorem ktery mas rad
mohl jsem to rict uz na zacatku, pravda.. ale doufam ze te troska teorie okolo nezabije...
jo a maly hlavolam na konec... zkus vymyslet (pripadne dokazat ze neexistuje) regularni vyraz pro automat, ktery prijme slova z jazyka L = {w | w = 0^n 1^n}, tedy slova ktera maji na zacatku nejaky pocet nul... a potom stejny pocet jednicek.... _________________ Nemarni čas u kompu, pojď si zaběhat do lesa
function god_exists() { return false; } |
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 28. listopad 2007, 07:49:35 Předmět: |
|
|
Tutchek napsal: |
a) Regularni vyraz... |
OT: Kdybys chodil na IRC, tak bys vedel, ze tohle uz jsme Melkorovi davno vysvetlili _________________
|
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 28. listopad 2007, 09:38:11 Předmět: |
|
|
Mem napsal: |
Tutchek napsal: |
a) Regularni vyraz... |
OT: Kdybys chodil na IRC, tak bys vedel, ze tohle uz jsme Melkorovi davno vysvetlili |
problem je ze to melkor nepochopil - nebo nevim proc to tu pak nenapise ze uz to vyresil
nicmene operator | jsem mu radil snad pred 3 dnama a pokud se na to znovu pta tady tak to asi nepochopil |
|
Návrat nahoru |
|
|
MD
Založen: 29. 07. 2007 Příspěvky: 437 Bydliště: Praha
|
Zaslal: 28. listopad 2007, 10:58:30 Předmět: |
|
|
Tak to vlakno, je tady taky proto, aby si to mohli precist i jini, ze? _________________ - play with objects - www.krkal.org - |
|
Návrat nahoru |
|
|
MelkorNemesis
Založen: 27. 10. 2007 Příspěvky: 12
|
Zaslal: 28. listopad 2007, 12:50:20 Předmět: |
|
|
Tutchek: diky, konecne mam co potrebuju a muzu to zprovoznit Takze diky
Mem: jojo, ja psal regulerni protoze sem vetsinou hledal na googlu regexp a nedoslo mi ze je tam regulAr.
rezna: ale pochopil sem na co je | , ale pouzival sem ho jako (\w+| \d+), sice to fungovalo ale porad to nebylo ono.
Diky vsem |
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 28. listopad 2007, 14:34:43 Předmět: |
|
|
MD napsal: |
Tak to vlakno, je tady taky proto, aby si to mohli precist i jini, ze? |
OT: Ja psal ciste o tom bodu a), kde si Tutu honi triko, jak vidi chybku ve slovicku, a pritom ji mel Melkor nahlasenou uz davno ode me na IRC, kam Tutu prestal chodit, a jen z toho duvodu jsem tady vubec rypal
Vecny prinos jeho ranniho elaboratu samozrejme nezpochybnuji, urcite by jej mohl dat i do Wiki CH _________________
|
|
Návrat nahoru |
|
|
|