Autor Zpráva
habendorf
Profil
Pustil jsem se na Linuxsoftu do studia PHP a v 22. dílu o regulárech jsem narazil na věc, kterou nechápu:
Metaznak ? znamená "Předchozí znak tam bude maximálně jednou", takže výrazu s?t vyhoví prejt, prst, psst.
Nějak se mi nezdálo to psst, řekl jsem si "asi překlep autora", ale echo (integer) ereg("s?t", "psst"); skutečně dává jedničku.
Můžete mi to prosím někdo nějak vysvětlit?
Hugo
Profil
habendorf

nikde nemas definovane co ma byt pred tou sekvenci s?t, proto tomu vyhovi i psst.
Dero
Profil
Nech mě hádat - echo (integer) ereg("ps?t", "psst"); dá nulu.

Špekuluj. :o)
habendorf
Profil
Hugo: čili on to chápe tak, že je tam ps (nijak nevyhodnocované), pak maximálně jednou "s" a po něm "t" ?
habendorf
Profil
Dero: echo (integer) ereg("ps?t", "psst"); dá nulu.
Jo, to je mi jasný.
Dero
Profil
habendorf

Takhle: Máš "psssssssssssst"

RE "s?t" hledá nejdřív "st", poté případně "t".
Nalezne ho tady: "psssssssssssst"

RE "ps?t" hledá nejdřív "pst", poté "pt" - nenalezne.
habendorf
Profil
Dero: Jo, začíná mi to docházet, díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.