如何使用preg_replace更改前2个字母的颜色

时间:2015-08-29 11:41:58

标签: php preg-replace

这是我的代码,但它只更改字符串的第一个字符

$string = 'Earrold Imperial Valdez';

$text = preg_replace('/(\b[a-z])/i','<span style="color:red;">\1</span>',$text);  
echo $text; 

2 个答案:

答案 0 :(得分:1)

只需要2个字符,例如

$text = preg_replace('/^([a-z]{2})/i','<span style="color:red;">\1</span>',$string);  
                     //↑      ^^^ Quantifier: {2} Exactly 2 time
                     //| assert position at start of the string

或者如果你想在没有正则表达式的情况下这样做,你可以使用substr(),例如

$text = '<span style="color:red;">' . substr($string, 0, 2) . '</span>' . substr($string, 2);  

答案 1 :(得分:0)

错误发生在您的正则表达式中。 [a-z]只会影响一个角色,因为没有乘数。要更改前2个,您需要使用量词 - {}

将RegExp更改为/\b[a-z]{2})/i应修复它。