Есть быстрый способ добавить префиксы ко всем классам CSS и идентификаторам?

Мне нужно быстро добавить префиксы ко всем моим классам и идентификаторам, и это довольно большой файл CSS. Я думал о быстрой строке регулярных выражений, но до сих пор мне не удалось. Есть идеи?

Я пробовал простые вещи вроде:

\#([A-z0-9]+) { 

Который позволит мне заменить # префикс_ $ 1, но он не учитывает:

 #id { #id.class #id, 

и т. д. Я не могу просто заменить все # [a-z0-9], потому что он попытается захватить фоновые цвета и так далее.

Мне также нужно заменить все классы, что еще более сбивает меня с толку.

Вы можете выполнить поиск:

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

\#(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)[^}]+{

Должен найти все имена и имена классов

С помощью RegExr используйте следующее:

(?<=#|\.)(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)(?=[^}]+{)

Изменить: Вот ссылка на тест на Google CSS http://regexr.com?2ugv1

Вы можете попробовать это [#|\.][\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} 

Также нашел хороший инструмент для игры с различными опциями. Там будут проблемы с цветами, но вы не можете избавиться от них, поскольку они следуют тем же правилам, что и идентификаторы.

обновление, исключая : из результатов, которые не соответствуют цветам.

(?<![: ])[#\.][\w]+\.?([\w-]+\s?) вам понадобится механизм регулярных выражений, который поддерживает отрицательный lookbehind, а не тот, что знаком с php. не знаю, имеет ли он это, но я бы подумал, что это так.

Я бы пошел с чем-то вроде этого:

 /([#\.])([^\d][a-z0-9-_]+)/ Replace with $1PREFIX_$2 

Однако будьте осторожны, что он поймает цвета, а также (если сделать это строчными буквами), я сейчас работаю над обходным решением.