我正在搞乱LESS PHP解析器,让它替换IE过滤器中的4色十六进制代码。我想要做的是用#ff7755 33
替换这样的东西:#ff775533
即。删除其中的所有空格。显然,字符可以随颜色代码而变化。我发现this question非常接近我的想法。
现在,我有这个正则表达式,它找到了正确的字符串:
(#([0-9a-f]){6}\s[0-9a-f]{2})
我现在需要的是用preg_replace()
替换参数的正则表达式。
答案 0 :(得分:7)
preg_replace('/(#[0-9a-f]{6}) ([0-9a-f]{2})/i','$1$2',$yourSource);
答案 1 :(得分:2)
PHP手册中的第一个示例似乎正是您要做的事情:
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
当然对你来说是:
<?php
$string = '#ff7755 33';
$pattern = '/(#[0-9a-f]{6})\s([0-9a-f]{2})/i';
$replacement = '${1}$2';
echo preg_replace($pattern, $replacement, $string);
?>