Autor Zpráva
S3RIO2
Profil
Ahoj,

pokoušel jsem se pomocí regulérních výrazů oddělit následující string, ale nějak se mi nedaří poskládat šablonu nijak efektivně. Mám například string:

$string = "01 Nazdar 02 Čau 03 Ahoj";

Jak ho efektivně rozdělit podle těch čísel, vč. zachování čísel aby výstup vypadal následovně, tedy aby oddělil každý pozdrav na nový řádek ?

01 Nazdar
02 Čau
03 Ahoj

..
čísla mohou pokračovat třeba do: 16 Aloha :-)

Předem děkuji za pomoc. Strašně se v tom plácám.. :( :D
Ikki
Profil
Nepostačilo by - \n \r\n
S3RIO2
Profil
Bohužel nestačilo.
Kcko
Profil
S3RIO2:
\d*\D+ ?
S3RIO2
Profil
Kcko:

Vzhledem k tomu, že číslovky se mohou vyskytovat také mezi slovy je toto pro mě nepoužitelné. Potřebuji to dělit podle těch [01-16][MEZERA][TEXT]. Nemusí to být zrovna preg_*, nebráním se jakékoliv funkci, kterou to půjde oddělit.
Kajman
Profil
Pokud chcete před jakékoliv alespoň dvě číslice následované mezerou přidat (unixový) enter, tak zkuste
$string = "01 Nazdar 02 Čau 03 Ahoj";
$string = preg_replace('/(\d{2,} )/', "\n\$1", $string);
Keeehi
Profil
S3RIO2:
<?php
$in = "01 Nazdar 02 Čau 03 Ahoj";

echo preg_replace('~((0\d|1[0-6]) )~', "\n\$1", $in);
S3RIO2
Profil
Super pánové funguje, akorát jsem si musel \n nahradit <br>, já bych ten pattern snad nikdy nedal dohromady. Děkuji mnohokrát.

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