Задать вопрос
@AntPask

Как составить регулярку(PHP)?

приветствую!
есть CSS код примерно такого вида
@...( ... ) {
	.class {
	 ......
	}
}

@media( ... ) {
	.class {
	  ......
	}
	.class {
	 ......
	}
}


итп, не получается составить регулярное выражение находящее все блоки начинающиеся с @ в том числе с вложенными свойствами.
  • Вопрос задан
  • 231 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@localghost
Товарищ выше меня (слился, удалил ответ :)), возможно, понимает больше, но мне это не кажется невозможным.
Непосредственно написать сейчас не готов, но основная проблема же во вложенных фигурных скобках? Описанное здесь: habrahabr.ru/post/56765 или здесь не поможет?
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Вам нужны рекурсивные шаблоны, то есть будет начало с @, а потом рекурсивный шаблон.
Это описано в документации, там же есть примеры того, как оно работает: https://secure.php.net/manual/ru/regexp.reference....
Ответ написан
Комментировать
@AntPask Автор вопроса
Не :) Валерий, там быть могут еще и классы,идентификаторы и так далее... а ответы выше изучаю, спасибо!

https://regex101.com/r/kQ9sA4/1
вот пример решения с рекрусивным шаблоном, но не мону понять почему не получается сделать конструкцию такого например вида
@[^{]+?{(?>[^{}]+ | (?R))+?} для того что бы захватить только все что начинается с @

спасибо!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы