PHP使用preg_replace将相同的字符替换为不同的标记

时间:2017-09-18 19:03:57

标签: php regex

在用户文字中我有一些明星,我正在尝试将它们转换为html常规标签,例如,用户文字是:

  

对于每个循环迭代,当前**数组元素**的**值**分配给$ value,**数组指针**移动1,直到它到达最后一个数组元素。 / p>

如你所见,我在valuearray element等明星之间有一些单词,现在我想将第一颗星转换为<b>,将第二颗星转换为</b> ,最后我应该:

For every loop iteration, the <b> value </b> of the current <b> array 
element </b> is assigned to $value and <b> the array pointer 
<b> is moved by one, until it reaches the last array element.

我怎样才能找到并转换它们?感谢

1 个答案:

答案 0 :(得分:0)

https://regex101.com/r/3XuP2V/1

$re = '/\*\*(.*?)\*\*/';
$str = 'For every loop iteration, the ** value ** of the current ** array element ** is assigned to $value and ** the array pointer ** is moved by one, until it reaches the last array element.';
$subst = '<b>$1</b>';

$result = preg_replace($re, $subst, $str);

echo $result;

\*将逃脱*以符合字面意思 (.*?)与任何长度的任何内容都是懒惰的匹配