gpt4 book ai didi

php - 模式匹配 css 规则

转载 作者:行者123 更新时间:2023-11-28 18:40:42 27 4
gpt4 key购买 nike

我有以下模式:

[\{\}].*[\{\}]

使用以下测试字符串(如果需要可以提供更多):

}.prop{hello:ars;} //shouldn't match
}#prop{} //should match
}.prop #prop {} //should match

该模式的目的是找到空的 css 规则集。有人可以建议我如何排除与第二组括号之间的字符匹配吗?当我接近解决方案时,我将更新模式。

编辑:在 http://gskinner.com/RegExr/此模式:[\}].*[\{]{1}[/}]{1}似乎有预期的结果,尽管由于我不明白的原因它在转移到 php 时中断了。

编辑:如果这应该是一个单独的问题,首先道歉。在 php 的第一次编辑中使用模式:

    $pattern = "/[\}].*[\{]{1}[/}]{1}/";
preg_match_all ($pattern, $new_css, $p);
print_r($p);

当 $new_css 是包含空规则集的上传 css 文件内容的字符串时,永远不会填充 $p。但我知道这种模式是可以的。谁能看出是什么问题?

编辑:最终解决方案

//take out other unwanted characters
$pattern = "/\}([\.#\w]\w+\s*)+{}/";
//do it twice to beat any deformation
$new_css = preg_replace ($pattern, '}', $new_css);
$new_css = preg_replace ($pattern, '}', $new_css);

最佳答案

尝试在正则表达式周围使用单引号,或将 \ 字符加倍。 PHP 处理双引号字符串中的 \ 的方式是 \{ 变成 {,破坏正则表达式。

关于php - 模式匹配 css 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com