Autor | Zpráva | ||
---|---|---|---|
error414 Profil |
#1 · Zasláno: 18. 1. 2006, 14:41:36
Potreboval bych poradit s regulernim vyrazem
mam znaky admin a potrebuju aby je retezec nebsahoval zatim sem to nikde nenasel ^.*(admin).*$ tohle obsahuje a jakz je ten negator? diky |
||
Peca Profil |
#2 · Zasláno: 18. 1. 2006, 14:57:06
Negátor je tuším taky ^ Zkus něco me smyslu ^[.*^(admin)]$ ale možná jsem úplně vedle...
|
||
error414 Profil |
#3 · Zasláno: 18. 1. 2006, 15:27:32
Peca
bohuzel nefunguje |
||
Peca Profil |
#4 · Zasláno: 18. 1. 2006, 15:42:30
Otázka je, jestli vůbec regulární jazyk toto umožňuje...
Mohlo by se na to jít obráceně: if (!eregi("admin",$string)) ... Záleží na tom, co přesně potřebuješ... |
||
error414 Profil |
#5 · Zasláno: 18. 1. 2006, 15:54:38
neco se muze menit
mam retezec neco admin: 25 neco neco petr: 45 neco neco tomas: 65 neco a ja potrebuji vybrat radky kde neni admin script to cte po radcich a ja potrebuji vsechny radky ktere obsahuji neco neco: cislo , ale to druhe neco nesmi byt admin |
||
Hugo Profil |
#6 · Zasláno: 18. 1. 2006, 16:02:52
A nestačí ti toto
http://mirrors.inway.cz/manual/en/function.strpos.php Můžeš testovat řetězec admin: |
||
error414 Profil |
#7 · Zasláno: 18. 1. 2006, 16:32:57
Hugo
jj dik, ja to taky uz vyresil takovym divnym zpusobem, slo me o to jestli to nejde napsat jedni regularnim vyrzem |
||
Hugo Profil |
#8 · Zasláno: 18. 1. 2006, 16:34:31
error414
IMHO by to mělo jít, pokud nezapomenu, tak si s tím doma pohraju. |
||
error414 Profil |
#9 · Zasláno: 18. 1. 2006, 16:36:40
Hugo
Diky |
||
ah01 Profil |
#10 · Zasláno: 18. 1. 2006, 17:24:00
Myslím, že pokud to lze vyřešit nějak jednoduše pomocí fcí. pro práci s řetězci, tak je to lepší, něž všude cpát reg. výrazy. Aspoň to bude rychlejší, ne.
|
||
Hugo Profil |
#11 · Zasláno: 19. 1. 2006, 05:00:17
ah01
S tím plně souhlasím. error414 Tak jsem si s tím výrazem trochu hrál. Nakonec to nebylo tak složité, ale musel jsem použít perlovské výrazy.
|
||
error414 Profil |
#12 · Zasláno: 19. 1. 2006, 07:01:28
Hugo
moc diky, moc mu nerozumim ale podivam se na to. PHP je v reg vyrazech kompatibilni s PERLEM, teda pokud se nemylim. |
||
Hugo Profil |
#13 · Zasláno: 19. 1. 2006, 07:07:39
error414
Jsou možné dvě syntaxe. Pro tu perlovskou jsou funkce preg_, pro POSIX syntaxi jsou zase funkce ereg. |
||
Hugo Profil |
#14 · Zasláno: 19. 1. 2006, 07:09:37
error414
Ten výraz není složitý (\S+) - všechno kromě bílých znaků (\s) - bílý znak (mezera) (?!admin:) - pokud najde řetězec admin: tak vrátí false, opačný případ je (?=admin:) |
||
error414 Profil |
#15 · Zasláno: 19. 1. 2006, 07:14:17 · Upravil/a: error414
Hugo
Diky, (\S+) tuhle syntax neznam a (?!admin:) tuhle take, musim se na to jeste podivat. Na internetu je malo kvalitnich tutorialu o regularnich vyrazech, nebo jsem alespon zadny nenasel BTW: nechapu co tu delas tak brzo rano ja mam jeste noc |
||
Hugo Profil |
#16 · Zasláno: 19. 1. 2006, 07:31:45
error414
Pokud se někde dostaneš k linuxu, tak stačí spustit 'man perlre'. Manuálové stránky jsou IMHO i někde na webu, zkus použít google. P.S.: Mám pracovní dobu od 5.00 do 17 - 20.00 |
||
error414 Profil |
#17 · Zasláno: 19. 1. 2006, 07:38:05
Hugo
Pokud se někde dostaneš k linuxu, tak stačí spustit 'man perlre'. Linux jsem zavrhl, teda aspon prozatim. Je to v jinem topicu . No flame Manuálové stránky jsou IMHO i někde na webu, zkus použít google. To jsem delal ale nic jsem nenasel, ale podivam se, hledal jsem regularni vyrazy pro PHP. Mám pracovní dobu od 5.00 do 17 - 20.00 A to delas co??? To si admin? Jinak si to nedovedu predstavit. |
||
Hugo Profil |
#18 · Zasláno: 19. 1. 2006, 07:41:58
|
||
error414 Profil |
#19 · Zasláno: 19. 1. 2006, 08:36:31
Hugo
jeste prosim te ja ty reg vubec nechapu treba tohle ^.+@.+$ tohle odpovida neco@neco ale uz ne neconeco ^.+[^@].+$ tohle odpovida neco@neco ale aji neconeco nechapu kdyz jsem timhle [^@] vyradil znak @ |
||
Hugo Profil |
#20 · Zasláno: 19. 1. 2006, 08:44:10 · Upravil/a: Hugo
^.+@.+$
.+ libovolný řetězec o délce minimálně jeden znak @ zavináč Ten zavináč tam být musí, proto neconeco nemůže fungovat. ^.+[^@].+$ Pokud máš výraz [^@], tak tomu odpovídá jakýkoliv řetězec, který neobsahuje znak @, např. ^[^ab]+$ cde - shoda ade - neshoda bde - neshoda Snad to je aspoň trochu pochopitelné. |
||
Hugo Profil |
#21 · Zasláno: 19. 1. 2006, 08:46:25
Ješte, proč výrazu ^.+[^@].+$ odpovídá i neco@neco. Souvisí to s hladovostí kvantifikátorů, výraz .+ sežere celý řetězec i se zavináčem, proto dojde ke shodě.
|
||
error414 Profil |
#22 · Zasláno: 19. 1. 2006, 08:48:59
Hugo
jj ten prvni chapu ale ne ten druhy ^.+[^@].+$ neco@neco shoda proc? tohle fakt nechapu neco@neco shoda @neco shoda |
||
Hugo Profil |
#23 · Zasláno: 19. 1. 2006, 08:54:30
Protože výraz .+ sežere celý řetězec, takže [^@] se nemá šanci projevit. Musel bys to přepsat takto
^.[^@]+$. Tento výraz vezme jakýkoliv řetězec, který neobsahuje zavináč. |
||
error414 Profil |
#24 · Zasláno: 19. 1. 2006, 09:02:01
Hugo
to neni upne pravda shoduje se treba s @neco |
||
Hugo Profil |
#25 · Zasláno: 19. 1. 2006, 09:24:27
error414
Aha, nemá tam být ta tečka. |
||
error414 Profil |
#26 · Zasláno: 19. 1. 2006, 09:29:40
Hugo
nebzlo bz moyne se te treba ptat na skzpu rad bzch se to naucil? |
||
Hugo Profil |
#27 · Zasláno: 19. 1. 2006, 09:31:02
error414
Nebylo, protože skype nepoužívám. Maximálně přes ICQ, ale mám teď dost práce, takže moc nestíhám. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0