PHP reg将所有[hexa]替换为字体颜色字符串?

问题描述:

我有一个字符串,:$s="[#efefef]H[#fafafa]I!";PHP reg将所有[hexa]替换为字体颜色字符串?

我怎样才能做到这就像一个新的字符串:

$s2="<font color='#efefef'>H</font><font color='#fafafa'>I</font>!"; 

感谢

<font>对象已过时。改为使用<span style="color: #efefef;">

preg_replace("/\\[#([0-9a-f]+)\\]([^[]+)/i", "<span style=\"color: #\\1;\">\\2</span>", $s); 
+0

我得到这个:[#EFEFEF] H [#fafafa]我! ....不工作 – lacas 2011-03-23 17:24:15

+0

现在试试吧,对不起,初学者我的错误:) – orlp 2011-03-23 17:28:26

+0

真棒匿名downvote再次。爱他们。 – orlp 2011-03-23 17:35:57

为您例如数据这应该很好地工作:

$s2 = preg_replace('~\[(#[0-9a-f]{6})\]([A-Z])~', 
        "<font color='$1'>$2</font>", $s); 

您可能需要为您的需要更改[A-Z]占位符。这只能匹配一个大写字母,如你的例子。

+0

工作太:(... – lacas 2011-03-23 17:24:37

+0

@lacas,对不起,尝试更新的代码;!) – Czechnology 2011-03-23 17:27:58