Php 正则表达式从CSS文件中删除项目
我知道人们在这里经常因为使用正则表达式来处理HTML而受到指责,我理解这一点,但我认为在这种情况下,我可以使用正则表达式来修改CSS文件。不幸的是,我自己写这些东西是没有希望的 我正在编写一个脚本(PHP),需要在CSS文件中动态添加/删除项。例如,CSS文件可能具有以下声明:Php 正则表达式从CSS文件中删除项目,php,regex,Php,Regex,我知道人们在这里经常因为使用正则表达式来处理HTML而受到指责,我理解这一点,但我认为在这种情况下,我可以使用正则表达式来修改CSS文件。不幸的是,我自己写这些东西是没有希望的 我正在编写一个脚本(PHP),需要在CSS文件中动态添加/删除项。例如,CSS文件可能具有以下声明: .cat-item-4 { background: #ff0fcd; } 大概一个正则表达式可以删除整个声明?它可能包含“background”中的其他内容,因此需要找到.cat-item-4类,然后删除该类以
.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的一部分。这很有用,非常感谢。使用将非常简单,没有超过背景十六进制数或颜色十六进制,没有花哨,所以没有压力。再次感谢。