我需要快速为我的所有类和ID添加前缀,这是一个非常大的CSS文件。我正在考虑一个快速正则表达式字符串,但到目前为止我失败了。有什么想法吗?
我尝试过简单的事情:
\#([A-z0-9]+) {
哪个会让我用#prefix_ $ 1代替,但不考虑:
#id {
#id.class
#id,
等。我不能只替换所有#[a-z0-9]因为它会尝试抓住背景颜色等等。
我还需要替换所有类,这对我来说更加困惑。
答案 0 :(得分:1)
您可以搜索:
\.(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)[^}]+{
\#(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)[^}]+{
应找到所有的班级名称和ID名称
使用RegExr,请使用:
(?<=#|\.)(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)(?=[^}]+{)
编辑: 这是谷歌CSS测试的链接 http://regexr.com?2ugv1
答案 1 :(得分:1)
您可以尝试使用[#|\.][\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}
还找到了一个很好的tool来玩不同的选项。颜色仍然存在问题,但你不能真正摆脱它,因为它们遵循与ids相同的规则。
<强>更新强>
从结果中排除:
与颜色不匹配。
(?<![: ])[#\.][\w]+\.?([\w-]+\s?)
你需要一个支持负面观察的正则表达式引擎,不熟悉php所以不知道它是否有它,但我想它会这样做。
答案 2 :(得分:-1)
我会选择这样的事情:
/([#\.])([^\d][a-z0-9-_]+)/ Replace with
$1PREFIX_$2
但请注意,它也会捕捉颜色,(如果使用小写字母)我正在努力解决这个问题。