Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式从CSS文件中删除项目_Php_Regex - Fatal编程技术网

Php 正则表达式从CSS文件中删除项目

Php 正则表达式从CSS文件中删除项目,php,regex,Php,Regex,我知道人们在这里经常因为使用正则表达式来处理HTML而受到指责,我理解这一点,但我认为在这种情况下,我可以使用正则表达式来修改CSS文件。不幸的是,我自己写这些东西是没有希望的 我正在编写一个脚本(PHP),需要在CSS文件中动态添加/删除项。例如,CSS文件可能具有以下声明: .cat-item-4 { background: #ff0fcd; } 大概一个正则表达式可以删除整个声明?它可能包含“background”中的其他内容,因此需要找到.cat-item-4类,然后删除该类以

我知道人们在这里经常因为使用正则表达式来处理HTML而受到指责,我理解这一点,但我认为在这种情况下,我可以使用正则表达式来修改CSS文件。不幸的是,我自己写这些东西是没有希望的

我正在编写一个脚本(PHP),需要在CSS文件中动态添加/删除项。例如,CSS文件可能具有以下声明:

.cat-item-4 {
    background: #ff0fcd;
}
大概一个正则表达式可以删除整个声明?它可能包含“background”中的其他内容,因此需要找到.cat-item-4类,然后删除该类以及括号之间的所有内容。基本上全部都是


非常感谢您的帮助。

您可以使用正则表达式查找/替换为:

$re = "#\.\bcat-item-4\b.+?\}#s";

再加上修饰符PCRE_DOTALL,这将找到名为bcat-item-4的所有类。#符号告诉PHP要使用什么分隔符,因为在第二个#之后,'s'表示。应该匹配换行符,这对于删除整个声明至关重要。

CSS!=HTML。。。为此使用正则表达式并不是那么糟糕。。。但我想知道你是否真的需要在一开始就这么做。是的,我意识到它们是不同的,我只是想避免在这里询问正则表达式时通常会引起的愤怒!这种情况有点复杂,可能不值得完全解释,本质上是一个wordpress插件,它允许我通过管理员为一个类别分配一个十六进制颜色,因此插件需要控制这些类的显示。我可以用丑陋的内联CSS来实现,但我正在尽可能地保持整洁!没问题。只要你不经常“在运行中”更改它,这没什么大不了的,因为你必须小心规则中没有},例如作为背景图像url的一部分。这很有用,非常感谢。使用将非常简单,没有超过背景十六进制数或颜色十六进制,没有花哨,所以没有压力。再次感谢。