替换起始和结束元素php



我有一个文本,我想替换

_ By italic tag <i> </i>
@ By bold tag <strong> </strong>
* Per bold and italic label

Lorem ipsum dolor sit amet, consectetur adipiscing elit. "_Integer lacinia sed justo ac imperdiet._" Etiam gravida purus a ex fermentum, in *molestie tellus iaculis*. Nulla facilisi. Sed vel consequat eros, non sodales turpis. _Vestibulum a ligula malesuada, dapibus massa gravida, convallis nulla_. @Maecenas@ fermentum felis in *ultricies* venenatis. @Maecenas@ non commodo lectus.

有什么功能帮助吗?谢谢

您可以使用regex来完成此操作。例如:

$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. "_Integer lacinia sed justo ac imperdiet._" Etiam gravida purus a ex fermentum, in *molestie tellus iaculis*. Nulla facilisi. Sed vel consequat eros, non sodales turpis. _Vestibulum a ligula malesuada, dapibus massa gravida, convallis nulla_. @Maecenas@ fermentum felis in *ultricies* venenatis. @Maecenas@ non commodo lectus.';

$replacedText = preg_replace(
[
'~_([^_]+)_~sU',
'~@([^@]+)@~sU',
'~*([^*]+)*~sU',
],
[
'<i>$1</i>',
'<strong>$1</strong>',
'<strong><i>$1</i></strong>',
],
$text
);
echo($replacedText);
/**
* Output:
*
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. "<i>Integer lacinia sed justo ac imperdiet.</i>"
* Etiam gravida purus a ex fermentum, in <strong><i>molestie tellus iaculis</i></strong>. Nulla facilisi.
* Sed vel consequat eros, non sodales turpis. <i>Vestibulum a ligula malesuada, dapibus massa gravida,
* convallis nulla</i>. <strong>Maecenas</strong> fermentum felis in <strong><i>ultricies</i></strong>
* venenatis. <strong>Maecenas</strong> non commodo lectus.
*/

最新更新