Autor | Zpráva | ||
---|---|---|---|
phobos9007 Profil |
#1 · Zasláno: 21. 4. 2010, 13:50:57
Zdravím,
Neví prosím někdo, proč mi preg_match("/\.{2,}/","test.localhost.cz") Děkuji |
||
Kajman_ Profil * |
#2 · Zasláno: 21. 4. 2010, 13:55:19
Protože v tom řetězci nejsou dvě tečky po sobě.
|
||
AM_ Profil |
#3 · Zasláno: 21. 4. 2010, 13:59:00
Zkus to takhle:
if (preg_match_all("/\./","test.localhost.cz") >= 2) ... Nebo ještě lépe bez regulárů přes substr_count() |
||
phobos9007 Profil |
#4 · Zasláno: 21. 4. 2010, 14:12:19
AM:
Moc díky, všude se píše "opakování znaků" ale nikde jsem snad neviděl, že musí následovat hned po sobě. Jinak máš tam drobnou chybu, preg_match_all if (preg_match_all("/\./","test.localhost.cz",$shody) >= 2) ... |
||
AM_ Profil |
#5 · Zasláno: 21. 4. 2010, 14:14:24
Jo, takovýhle detail jsem nestudoval :) stejně, raději to dělej přes ten substr_count, regulární výrazy jsou zde naprosto zbytečné. Jen jsem chtěl ukázat, jak by se přes ně podobná věc (spočítání celkových výskytů) dala dělat.
|
||
phobos9007 Profil |
#6 · Zasláno: 21. 4. 2010, 14:20:43
To je dobrý, hlava je na nápady, na phpko je manuál :) Ještě bych se tě rád zeptal, proč si myslíš, že je na tohle lepší
substr_count |
||
nightfish Profil |
#7 · Zasláno: 21. 4. 2010, 15:04:24
phobos9007:
„Ještě bych se tě rád zeptal, proč si myslíš, že je na tohle lepší“ v tomto konkrétním případě je to lepší, protože to je rychlejší (regulární výraz se musí rozparsovat a pak se provádí simulace přijetí řetězce, zatímco u substr_count to vyhledává jen pevně dané podřetězce) pokud bys potřeboval vyhledat podřetězce různé podoby (např. abc, abbc, abbbc, ...), bylo by naopak vhodnější použít regulární výrazy |
||
AM_ Profil |
#8 · Zasláno: 21. 4. 2010, 15:18:31
phobos9007:
„Ještě bych se tě rád zeptal, proč si myslíš, že je na tohle lepší“ Ze stejného důvodu, jako nebudeš zabíjet komára plamenometem: počítáš výskyty podřetězce, tak použij funkci, která je k tomu určená (a v dobré víře také optimalizovaná), a nemusíš spouštět složitý engine regulárních výrazů, který je určený pro mnohem složitější problémy. |
||
Časová prodleva: 14 let
|
0