(in PHP) I have the following string:
$string = '<!--:fr--><p>Mamá lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ut est et tortor sagittis auctor id ut urna. Etiam quañ justo, pharetra sed bibendum at, vulputate et augue.</p> <p>Curabitur cursus mi vel quam placerat malesuada. Fusce euismod mollis tincidunt. Sed cursus, sem et porta dictum, elit purus facilisis massa, eget consectetur nisi libero eget leo. Vivamus vitae mattis nulla. varius fermentum.</p><!--:-->'
And I wanna eliminate <!--:fr--> and <!--:--> using
preg_replace('/<!--:[a-z]{2}-->(\w+)<!--:-->/', '${1}', $string)
But it return the same $string. What is the problem?
You have characters that fall outside of
[a-zA-Z0-9_](which is what\wmatches). You can match with[\s\S], which means any whitespace or non whitespace character (i.e. everything).You could also use
.withsflag.Try this…
Ideone.