我有一个
形式的字符串"Look at this [website]{http://www.stackoverflow.com}
or at this [page]{http://www.google.com}"
我想用PHP解析它们
"Look at this <a href='http://wwwstackoverflow.com'>website</a>
or at this <a href='http://www.google.com'>page</a>"
我该怎么做?
我虽然使用str_replace()
,但我不知道如何在括号[]
之间获取字符串。
编辑[26.08.2016] :答案使用PHP preg_replace方法和正则表达式。我不明白这里给出的答案,但它有效,所以我很高兴但现在我找到了this免费教程,教你如何使用正则表达式。我发现它非常有帮助。特别是当一个人想要为类似的案例做出自己的正则表达时。
答案 0 :(得分:7)
使用preg_replace
$str="Look at this [website]{http://www.stackoverflow.com} or at this [page]{http://www.google.com}";
echo preg_replace('/\[(.*?)\]\{(.*?)\}/', "<a href='$2'>$1</a>", $str);
输出:
Look at this <a href='http://www.stackoverflow.com'>website</a> or at this <a href='http://www.google.com'>page</a>
答案 1 :(得分:1)
使用preg_replace
:
$pattern = "/(\\[([^\\]]+)\\]\\{([^\\}]+)\\})/";
$replacement = '<a href="$3">$2</a>';
$finalStr = preg_replace($pattern, $replacement, $yourString);