Autor | Zpráva | ||
---|---|---|---|
kuxa Profil |
#1 · Zasláno: 15. 4. 2015, 20:13:53
Zdravím,
mám na webu takový kód: $nazev = preg_replace("([0-9]{2})([[:space:]]{1})(.*)", "$0. $2", $nazev); Jenže to nefunguje :( Píše to následující: Warning: preg_replace(): Unknown modifier '(' in ... on line 39 Děkuji předem! |
||
juriad_ Profil * |
#2 · Zasláno: 15. 4. 2015, 20:19:52
Chybi ti ohraniceni regexu. Obal ho treba do lomitek.
|
||
kuxa Profil |
A jó :D
Díky moc! A ještě "menší" problém (asi už logický). Takto mi to vrací jenom proměnné $0 a $1, kde $0 je celý název (01 Název) a $1 jen číslo (01). Ale já potřebuju název a číslo oddělit, abych mezi ně vehnal tečku. Samozřejmě by to šlo např. zjištěním délky názvu čísla a potom odečtením délky ze začátku celého řetězce, ale chci se zeptat, jestli není nějaká hezčí cesta (tj. jen tím regulárem). Díky edit: No jo, nachází se to v $3 :D Zarazilo mě, že $2 bylo prázdné, ale to byla vlastně ta mezera :D Děkuji moc! |
||
juriad Profil |
Klidně jsi to mohl napsat jednodušeji:
$nazev = preg_replace('/^(\d+)\s+/', '$1.', $nazev); Mezera se v regexu zapisuje úplně normálně jako mezera. [[:space:]] obsahuje navíc tabulátor, vertikální tabulátor a zalomení řádku.
Psát, že něco má být jednou nemusíš, tak je to výchozí. Pokud něco nepoužiješ, nemusíš to dávat do závorek (k zapamatování). |
||
Časová prodleva: 8 let
|
0