我遇到preg_replace
的问题,我试图替换css文件字符串,其中包含
#id-name.class-name
结构
#id-name .class-name
(里面有太空人物)。
这是我的代码:
function getFileContent($file)
{
$path = $this->_directory."/".$file;
if(file_exists($path))
return file_get_contents($path);
}
function replaceCSS($fileCSS){
$css_contents = $this->getFileContent($fileCSS);
//$pattern_one = '/\#([a-zA-Z0-9\-]*)\./g';
$css_contents = preg_replace('/#([a-zA-Z0-9\-]*)\./g','#\\1 .',$css_contents);
echo $css_contents;
}
结果是NULL
,如果我做对了(它什么也没显示)。
常规模式是正确的(检查两次)。
我的语法出了什么问题?
答案 0 :(得分:0)
答案 1 :(得分:0)
在php中,最好使用$1
作为组引用。另外,我会将正则表达式中的第一个*
更改为+
,以确保#
之后有字符。
$css_contents = preg_replace('/#([a-zA-Z0-9\-]+)\./','#$1 .',$css_contents);
答案 2 :(得分:0)
/g
修饰符在PHP中无效:
PHP Warning: preg_replace(): Unknown modifier 'g' in ...
删除它并将起作用......
您的修改后的行将是:
$css_contents = preg_replace('/#([a-zA-Z0-9\-]*)\./','#\\1 .',$css_contents);