Hoi,

Ik probeer een preg_replace te maken, hij werkt wel, maar hij ziet de inhoud van preg_replace niet.

<?php
$text = preg_replace('/\[.*?\]/', '+\1+', $test);
?>
Als ik nu een stukje tekst heb: 'Hoi [meneer] Jansen'
Dan krijg ik nu terug 'Hoi ++ Jansen'

Kan iemand me uitleggen waarom de \1 niet werkt?
Je moet eerst aangeven wat er onthouden moet worden, oftewel gecaptured. Dat doe je moet capture groups: () dus gebruik /\[(.*?\]/

En volgens mij is het \\1, maar ik gebruik altijd $1 dus zou het eigenlijk niet weten.
Bedankt, hiermee is het gelukt.

Toevoeging:

Dit werkt:
<?php
$text = preg_replace('/\[(.*?)\]/', '+\\1+', $test);
?>

Kan ik ook zo iets maken:?
<?php
$text = preg_replace('/\[(.*?)\]/', $vars['\\1'], $test);
?>
Want in dit geval krijg ik niks terug

Reageren