preg_replace \1 werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom aan t Goor

Tom aan t Goor

06/07/2013 15:45:41
Quote Anchor link
Hoi,

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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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?
 
PHP hulp

PHP hulp

25/01/2021 23:42:34
 
Wouter J

Wouter J

06/07/2013 15:57:29
Quote Anchor link
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.
 
Tom aan t Goor

Tom aan t Goor

06/07/2013 17:07:58
Quote Anchor link
Bedankt, hiermee is het gelukt.

Toevoeging:

Dit werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$text
= preg_replace('/\[(.*?)\]/', '+\\1+', $test);
?>


Kan ik ook zo iets maken:?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$text
= preg_replace('/\[(.*?)\]/', $vars['\\1'], $test);
?>

Want in dit geval krijg ik niks terug
Gewijzigd op 06/07/2013 17:14:58 door Tom aan t Goor
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.