Kim Steinhaug
New Member
Noen som er gode på regex patterns, jeg prøver å komme opp med denne.
Eksempel tekster:
<?php
$string = preg_replace(/ (quam venenatis).*(ut) /,'REPLACE TEXT',$string);
?>
Problemet er bare at .* modifier er grådig og stopper ikke på første forekomst av (ut) men fortsetter ut linja?
Eks:
<?php
$string = 'one two three one two three one two three one two three';
echo preg_replace("/two(.*)one/",'##' ,$string) . '<br>';
// one ## two three
echo preg_replace("/(two).*(one)/",'##' ,$string) . '<br>';
// one ## two three
echo preg_replace("/two (.*?) one/",'##' ,$string) . '<br>';
// one ## ## ## two three
?>
I am looking for one of two possible results, either:
one two ## one two ## one two ## one two three
and single hit 1 time:
one two ## one two three one two three one two three
Anyone know how to do this?
Eksempel tekster:
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. In libero velit, quam venenatis vel turpisut ut, utrhoncus egestas sem ut. Etiam aliquet sapien eget est posuere commodo
- Quam venenatis ullam pulvinar erat eu risus cursus blandit. Phasellus magna ut quam, dignissim vel consectetur eget, viverra in diam. Curabitur sem nulla, egestas nec interdum in, rutrum egestas nunc.
- Donec lacinia mi nec feugiat viverra. Nullam eu vehicula justo. Quisque dapibus eleifend mauris ac tristique. Vivamus quam venenatis arcu et arcu commodo accumsan ut. In consectetur ante nec imperdiet dictum. Praesent eleifend elit a sapien lobortis, ac dictum sem bibendum. Nullam sit amet odio eget dui ultrices efficitur quam. Venenatis elit ut et ut.
<?php
$string = preg_replace(/ (quam venenatis).*(ut) /,'REPLACE TEXT',$string);
?>
Problemet er bare at .* modifier er grådig og stopper ikke på første forekomst av (ut) men fortsetter ut linja?
Eks:
<?php
$string = 'one two three one two three one two three one two three';
echo preg_replace("/two(.*)one/",'##' ,$string) . '<br>';
// one ## two three
echo preg_replace("/(two).*(one)/",'##' ,$string) . '<br>';
// one ## two three
echo preg_replace("/two (.*?) one/",'##' ,$string) . '<br>';
// one ## ## ## two three
?>
I am looking for one of two possible results, either:
one two ## one two ## one two ## one two three
and single hit 1 time:
one two ## one two three one two three one two three
Anyone know how to do this?