preg_replace met newline in pattern
Boris Mattijssen
12/06/2010 16:25:40Hey Allemaal,
Ik heb dit stukje code:
Dit levert prima 'TESTTESTETESTETSETETETSTETESTRETS' op.
Alleen doe ik het zo:
Dan komt er 'direct[**TESTTESTETESTETSETETETSTETESTRETS**]' uit.
Ik wil uiteraard dat dit eruit komt:
Iemand een idee?
Groet,
Boris
Ik heb dit stukje code:
Code (php)
1
2
3
4
2
3
4
<?php
$data = 'direct[**TESTTESTETESTETSETETETSTETESTRETS**]';
echo preg_replace('|direct\[\*\*(.*)\*\*\]|', '$1', $data);
?>
$data = 'direct[**TESTTESTETESTETSETETETSTETESTRETS**]';
echo preg_replace('|direct\[\*\*(.*)\*\*\]|', '$1', $data);
?>
Dit levert prima 'TESTTESTETESTETSETETETSTETESTRETS' op.
Alleen doe ik het zo:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$data = 'direct[**TESTTESTETESTETSET
ETETSTETESTRETS**]';
echo preg_replace('|direct\[\*\*(.*)\*\*\]|', '$1', $data);
?>
$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
ETETSTETESTRETS
Iemand een idee?
Groet,
Boris
PHP hulp
21/12/2024 15:29:55Piet Verhagen
12/06/2010 18:32:33Richard van Velzen
12/06/2010 18:34:47http://wiki.phpfreakz.nl/Regexes:_Veelgemaakte_fouten#Het_matchen_op_.60..2A.60
Gewijzigd op 12/06/2010 18:35:08 door Richard van Velzen
Boris Mattijssen
13/06/2010 16:46:09Helaas heren maar deze code:
Levert helaas dit op:
EDIT:
This did the trick:
echo preg_replace('|direct\[\*\*(.*)\*\*\]|is', '$1', $data);
Code (php)
1
2
3
4
5
6
7
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);
?>
$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**]
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