Versio

preg_replace met newline in pattern

Overzicht Reageren

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

25/05/2012 11:39:30
Gesponsorde koppelingen:
 
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