PHP正则表达式匹配两个单词之间的值并替换

时间:2017-02-21 18:39:51

标签: php regex preg-replace preg-match preg-match-all

大家好我想用php实现的是在两个单词之间找到一个值(对于所有出现)并用另一个字符串替换它,然后删除值周围的单词。 这是一个例子

$mysting = "[link]http://website.com[/link] bla bla bla bla [link]http://google.com[/link]";

我想要实现的是制作这个字符串:

$newString = "<a href='http://website.com'>http://website.com</a> bla bla bla bla <a href='http://google.com'>http://google.com</a>";

我该怎么做? 这就是我现在所拥有的

preg_match("/(?<=[link])(.*)(?=[/link])/", $formData ,$match);

提前致谢!!

1 个答案:

答案 0 :(得分:1)

使用preg_replace功能:

$mysting = "[link]http://website.com[/link] bla bla bla bla [link]http://google.com[/link]";
$new_str = preg_replace("/\[link\]([^\[]+)\[\/link\]/", "<a href='$1'>$1</a>", $mysting);

print_r($new_str);

输出(作为源代码):

<a href='http://website.com'>http://website.com</a> bla bla bla bla <a href='http://google.com'>http://google.com</a>
相关问题