Мне нужно быстро добавить префиксы ко всем моим классам и идентификаторам, и это довольно большой файл 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
Однако будьте осторожны, что он поймает цвета, а также (если сделать это строчными буквами), я сейчас работаю над обходным решением.