preg_replace似乎没有工作,我错过了分隔符

时间:2014-05-23 10:06:29

标签: php regex

我有以下正则表达式在正则表达式编辑器中工作正常但是当我在PHP中将它拉到一起时我得到了和未知修饰符'('错误出现。

preg_replace("(\[LINK\])(\S*)(\[\/LINK])", "<a>href=\'$2\'>$2</a>", $xtext);

这是我关于SO的第一个问题所以我希望我已经提供了足够的信息。根据我的研究,我相信我缺少分隔符,但在搜索模式的开始和结束时尝试过,但似乎仍无效。

2 个答案:

答案 0 :(得分:0)

试试这个

preg_replace("/(\[LINK\])(\S*)(\[\/LINK])/", "<a>href=\'$2\'>$2</a>", $xtext);

请注意分隔符

答案 1 :(得分:0)

试试:

$input  = 'foo [LINK]http://google.com[/LINK] bar';
$output = preg_replace('/\[LINK\](.*?)\[\/LINK\]/', '<a href="$1">$1</a>', $input);

输出:

string 'foo <a href="http://google.com">http://google.com</a> bar' (length=57)