Autor Zpráva
petr
Profil *
Jakto že nefunguje následující kod? Když tam ale dám místo * počet opakování jako + pak už to čísla zobrazí.
Není to divné?
<?php 
$ptn = "/[0-9]*/";
$str = "ddd2558ggg";
preg_match($ptn, $str, $matches);
print_r($matches);
?>

Výsledek
Array
(
    [0] => 
)


Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
tiso
Profil
petr: pretože tomuto regulárnemu výrazu vyhovuje aj prázdny string. Funkcia preg_match vráti iba prvý výskyt, a ten je pred prvým písmenom v hľadanom stringu. Pokiaľ použiješ preg_match_all získaš výsledok v tvare:

Array
(
[0] => Array
(
[0] =>
[1] =>
[2] =>
[3] => 2558
[4] =>
[5] =>
[6] =>
[7] =>
)
)
petr
Profil *
tiso:
Hmm. Fakt to tak funguje. Kde teda ale vezme ty 3 prázdné řetězce před tím číslem?

Moderátor Joker: Smáznul jsem třetí "m" za "Hmm", aby to nepřivolávalo moderátory
tiso
Profil
petr: [tu]d[tu]d[tu]d[2558]g[tu]g[tu]g[tu]

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: