Autor Zpráva
matthew
Profil
<?php
$text = '„Lorem ipsum dolor sit amet<br>
Consectetuer id habitant congue laoreet<br>
<h3>Eu at id tristique dictumst</h3>
Eu dictum hendrerit Mauris Aliquam <br>
Odio Vestibulum arcu parturient neque“<br>';

$pattern = '{„(.*)<h3>([A-ZĚŠČŘŽÝÁÍÉÚŮ][A-Za-zĚŠČŘŽÝÁÍÉÚŮěščřžýáíéúů ]+)</h3>(.*)“}';
$replacement = '„$1<br>$2<br>$3“';
$text = preg_replace($pattern, $replacement, $text);

echo $text;
?>


Regulární výraz $pattern se s textem $text podle regexp.cz shoduje. Měl by se tedy zrušit nadpis H3. To se ale nestane, skript vypíše text tak, jak byl na začátku. Nevíte proč?
Jan Tvrdík
Profil
Přidej modifikátor „s“:
$pattern = '{„(.*)<h3>([A-ZĚŠČŘŽÝÁÍÉÚŮ][A-Za-zĚŠČŘŽÝÁÍÉÚŮěščřžýáíéúů ]+)</h3>(.*)“}s';
matthew
Profil
Jan Tvrdík
Díky, funguje to. Nějak ale nechápu, co to dělá. Mohl bys mě někam odkázat?
Měsíček
Profil
Něco jako "modifikátory a regulární výrazy" zadej do Googlu a máš odpověď hned.
srigi
Profil
Pattern modificators:

s: threat string as single line.

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