使用正则表达式格式化文本

时间:2012-11-24 01:27:05

标签: php html regex

我有两个函数来格式化我的通知文本。

1。将[white-text][/white-text]转换为<font color=white></font>

$string = preg_replace("/\[white-text\](\S+?)\[\/white-text\]/si","<font color=white>\\1</font>", $string);

2。将[url][/url]转换为<a href></a>

$string = preg_replace("/\[url\](\S+?)\[\/url\]/si","<a href=\"http://\\1\" target=\"_blank\">\\1</a>", $string);

问题:
WHITE-TEXT - 如果短语只有一个单词,它只会改变颜色 URL - 它工作正常,但我希望能够在URL的可读部分写任何内容。

谢谢!

1 个答案:

答案 0 :(得分:2)

  

URL - 它工作正常,但我希望能够在URL的可读部分写任何内容。

使URL代码具有[url=href]description[/url]形式,然后您可以使用这个简单的RegExp

"/\[url=([^\]]*)\](.+?)\[\/url\]/si"
"<a href=\"http://\\1\" target=\"_blank\">\\2</a>"