PHP:更正正则表达式,使第一个冒号左边的每个字母都小写
$value='x-Cem-Date:Wed, 16 Dec 2009 15:42:28 GMT';
目前我有:
$value = preg_replace('/(^.+)(?=:)/e', "strtolower('\1')", $value);
此输出
$value='x-cem-date:wed, 16 dec 2009 15:42:28 GMT';
它应该输出:
$value='x-cem-date:Wed, 16 Dec 2009 15:42:28 GMT';
解决方案
您的正则表达式应该如下所示:
/(^.+?)(?=:)/
区别在于+?
字符。+?
是非贪婪的,这意味着它将查找最少的字符数,直到表达式移动到表达式中的下一个匹配项,而不是找到最多的字符数,直到下一个匹配项。
相关文章