正则表达式替换字符串中的空格

时间:2011-06-14 20:17:59

标签: php regex replace

我正在搞乱LESS PHP解析器,让它替换IE过滤器中的4色十六进制代码。我想要做的是用#ff7755 33替换这样的东西:#ff775533即。删除其中的所有空格。显然,字符可以随颜色代码而变化。我发现this question非常接近我的想法。

现在,我有这个正则表达式,它找到了正确的字符串:

(#([0-9a-f]){6}\s[0-9a-f]{2})

我现在需要的是用preg_replace()替换参数的正则表达式。

2 个答案:

答案 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);
?>