Autor Zpráva
it47
Profil
Ahojte,

riesim problem, ako spravit cez funkcu preg_replace to, ze pokial nie je medzera za radovou cislovkou, tak ju tam pridame.

$string = 'Ulica 29.augusta';
preg_replace('/ ???  /', '$1. ', $string);

// chceme vysledok: Ulica 29. augusta

Viete mi prosim pomoct?

Vopred dakujem velmi pekne.

it47
lionel messi
Profil
$string = 'Ulica 29.augusta';
preg_replace('/(\d+?\.)(?! )/', '$1 ', $string);

Alternatívne riešenie, ktoré je istejšie, ak používaš znak . v desatinných číslach alebo nevieš jeho použitie vylúčiť (prvý kód nahradí aj vetu "Pí má približnú hodnotu 3.14 alebo podobne."), tento nie:

$string = 'Ulica 29.augusta';
preg_replace('/(\d+?\.)(?!( |\d))/', '$1 ', $string);
blaaablaaa
Profil
Tohle najde cislo s teckou na konci, za kterym neni whitespace, a prida mezeru.
preg_replace('/([\d]\.)(?!\s)/', '$1 $3', $string);
lionel messi
Profil
blaaablaaa:

Pozor na to, čo píšem vyššie. :)
blaaablaaa
Profil
lionel messi:
Záleží na use-case. V adrese nejspíš nebude desetinné číslo. V delším textu pak radší ([\d]\.)(?!\s|\d), aby nepřidával mezeru na konci řádku apod.
it47
Profil
lionel messi, blaaablaaa:
dakujem, ste borci, velmi ste mi pomohli. :)

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:

0