Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.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类添加前缀&;ID';s_Php_Css_Regex_Css Selectors - Fatal编程技术网

Php 有一种快速的方法可以为所有CSS类添加前缀&;ID';s

Php 有一种快速的方法可以为所有CSS类添加前缀&;ID';s,php,css,regex,css-selectors,Php,Css,Regex,Css Selectors,我需要快速为我所有的类和ID添加前缀,这是一个相当大的CSS文件。我在想一个快速的正则表达式字符串,但到目前为止我失败了。有什么想法吗 我尝试过一些简单的事情,比如: \#([A-z0-9]+) { 这将让我用#前缀U$1替换,但它不考虑: #id { #id.class #id, 等等。我不能只替换所有的#[a-z0-9],因为它会尝试获取背景色等等 我还需要替换所有的类,这让我更加困惑。您可以搜索: \.(?[\u a-zA-Z]+[\u a-zA-Z0-9-]*)[^}]+{ 应该找

我需要快速为我所有的类和ID添加前缀,这是一个相当大的CSS文件。我在想一个快速的正则表达式字符串,但到目前为止我失败了。有什么想法吗

我尝试过一些简单的事情,比如:

\#([A-z0-9]+) {
这将让我用#前缀U$1替换,但它不考虑:

#id {
#id.class
#id,
等等。我不能只替换所有的#[a-z0-9],因为它会尝试获取背景色等等

我还需要替换所有的类,这让我更加困惑。

您可以搜索:

\.(?[\u a-zA-Z]+[\u a-zA-Z0-9-]*)[^}]+{

应该找到所有的类名和id名

使用RegExr时,请使用以下命令:


(?我会这样说:

/([#\.])([^\d][a-z0-9-_]+)/ Replace with
$1PREFIX_$2
不过,请注意,它也会捕捉颜色(如果使用小写字母),我现在正在研究一种解决方法。

您可以尝试此
[\w]+\.?([\w\-]+\s?
它可以处理这些问题

#id {
#id.class {
#id, #otherId {
#class-dashed
#class_dashed
ul li:after {content: " #id.class { ";}
.class {background-color:     #fff250}
#id.class {color:#ff}
还发现了一个很好的方法来使用不同的选项。颜色仍然会有问题,但你不能真正摆脱它,因为它们遵循与ID相同的规则

更新 从结果中排除
,以使颜色不匹配


(?您需要一个支持负查找的正则表达式引擎,对php不太熟悉,所以不知道它是否有,但我可以想象它有。

它也将匹配
背景:#FFF024;
仍然-1,也将匹配{,导致css失去它的花括号。为什么它会匹配
{
{
()
之外,我不知道,但它确实存在。你自己测试它。你用什么来测试它?-1,也将替换
ulli:after{content:“#id.class{”}
不需要
内部的
[]
。另外,在
#类虚线
上失败,这是完全有效的。另外,捕获
{
并将其删除。使用您自己的工具进行测试。-1,还将在{content:“{id.class{”}之后替换
ul li:从结果来看?@Talasan Nicholson:是的,有负面的回顾,请看上面的更新。我在互联网上搜索过,这是我发现的唯一一个真正有效的正则表达式!做得好,伙计。@MattiLyraregex不是CSS解析器,所以如果你在其中找不到真正严格的字符串模式,你将无法使用正则表达式,如果你想使用它,这很难说不要共享整个CSS。也许在HTML中重命名类比在CSS中重命名更容易?@hakre我仍然需要重命名类和ID来保留样式。