这是我的代码,但它只更改字符串的第一个字符
$string = 'Earrold Imperial Valdez';
$text = preg_replace('/(\b[a-z])/i','<span style="color:red;">\1</span>',$text);
echo $text;
答案 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
应修复它。