Autor Zpráva
Orchard
Profil *
Mám problém s regulárním výrazem,...

$text = '[text]něco s jedním / a druhým /[/text]';
$re= '(\[text\])([^/]*)(\[/text\])';
$replacement= '\\2';
$text1 = Ereg_replace($re, $replacement, $text);

Problémem jest - pokud jsou v textu dvě a více lomeno, regulární výraz se neprovede. Proč?

Díky moc za jakoukoli pomoc
A Hezký vánoce! :)
Jan Tvrdík
Profil
Podle mě to nic nedělá, když je tam jedno a více lomeno. Zkusil bych to celé přepsat takto:
<?php
$text = '[text]něco s jedním / a druhým /[/text]';
$result = preg_match_all('#\[text\](.*?)\[/text\]#', $text, $matches);

print_r($matches);
?>
wrestler
Profil
Orchard
Možná by bylo lepší než
[^/]*

použít
[^\[]*


Tím bude moci mezi [text] a [/text] být lomeno, nikoli však [

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