Autor Zpráva
tito100
Profil
Zdravým .
mám retazec "func addMenuItem($link$name)"
potrebujem z neho vytiahnuť názov funkcie a všetky argumenty.
mám výraz /
preg_match_all('/func\s([a-z|A-Z|_]+[\w]*)[\(|\s]+(\$([a-z|A-Z|_][\w]*)[,|\)|\s])?/i', 'func addMenuItem($link$name) 
', $matches);

ten mi však ziska len prvý argument. ja potrebujem aby to našlo všetky.

vopred dakujem
Joker
Profil
tito100:
A co prostě přes strpos a substr získat všechno mezi první otevřenou závorkou a poslední uzavřenou závorkou a potom to pomocí explode rozsekat tím, čím se oddělují argumenty (dolar?)
tito100
Profil
prišlo mi že regex sú rýchlejšie . trakisto som to mohol dať do dvoch regex , ale zas mi prišlo že jeden sa spracuje rýchlejšie ako dva. a ak je to tak, tak nevidím dôvod to robiť inač. a
Keeehi
Profil
preg_match_all('~func\s([a-z_][\w]*)\s?\(((\$[a-z_][\w]*)\s*,?\s*)*\)~i', 'func addMenuItem ($link, $name);', $matches);
Joker
Profil
tito100:
prišlo mi že regex sú rýchlejšie . trakisto som to mohol dať do dvoch regex , ale zas mi prišlo že jeden sa spracuje rýchlejšie ako dva.
Tohle není tak snadné předpovědět, regulární výrazy, a preg_match_all dvojnásob, umějí být co do rychlosti pěkně záludné.
Už se mi takhle povedlo nahradit několik regulárních výrazů jedním složitějším a následně zjistit, že to celé je daleko pomalejší.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: