preg_replace met newline in pattern

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Boris Mattijssen

Boris Mattijssen

12/06/2010 16:25:40
Quote Anchor link
Hey Allemaal,

Ik heb dit stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$data
= 'direct[**TESTTESTETESTETSETETETSTETESTRETS**]';
echo preg_replace('|direct\[\*\*(.*)\*\*\]|', '$1', $data);
?>

Dit levert prima 'TESTTESTETESTETSETETETSTETESTRETS' op.

Alleen doe ik het zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$data
= 'direct[**TESTTESTETESTETSET
ETETSTETESTRETS**]'
;
echo preg_replace('|direct\[\*\*(.*)\*\*\]|', '$1', $data);
?>


Dan komt er 'direct[**TESTTESTETESTETSETETETSTETESTRETS**]' uit.
Ik wil uiteraard dat dit eruit komt:
Quote:
TESTTESTETESTETSET
ETETSTETESTRETS


Iemand een idee?

Groet,
Boris
 
PHP hulp

PHP hulp

29/03/2024 14:14:18
 
Piet Verhagen

Piet Verhagen

12/06/2010 18:32:33
Quote Anchor link
Probeer eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
preg_replace('|direct\[\*\*(.*)\*\*\]|m', '$1', $data);

http://nl3.php.net/manual/en/reference.pcre.pattern.modifiers.php
 
Richard van Velzen

Richard van Velzen

12/06/2010 18:34:47
Quote Anchor link
http://wiki.phpfreakz.nl/Regexes:_Veelgemaakte_fouten#Het_matchen_op_.60..2A.60

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
~\[direct\*\*([^*]*(?:\*(?!\*])[^*]*)*\*\*]~
Gewijzigd op 12/06/2010 18:35:08 door Richard van Velzen
 
Boris Mattijssen

Boris Mattijssen

13/06/2010 16:46:09
Quote Anchor link
Helaas heren maar deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$data
= 'direct[**LKJLKJL:JKLKJ
LJLJLHIVGIHGHUI**]'
;
echo preg_replace('|direct\[\*\*(.*)\*\*\]|m', '$1', $data);
echo '<br />';
echo preg_replace('~\[direct\*\*([^*]*(?:\*(?!\*])[^*]*))*\*\*]~', '$1', $data);
?>


Levert helaas dit op:
Quote:
direct[**LKJLKJL:JKLKJ LJLJLHIVGIHGHUI**]
direct[**LKJLKJL:JKLKJ LJLJLHIVGIHGHUI**]



EDIT:
This did the trick:
echo preg_replace('|direct\[\*\*(.*)\*\*\]|is', '$1', $data);
Gewijzigd op 13/06/2010 16:52:07 door Boris Mattijssen
 



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.