#regex #visual-studio-code
#регулярное выражение #visual-studio-code
Вопрос:
У меня есть следующий текст:
@keyframes slideRightIn10 {
0% {
-webkit-transform: translate3d(-10px, 0, 0);
transform: translate3d(-10px, 0, 0);
}
to {
-webkit-transform: translateZ(0);
transform: translateZ(0);
}
}
С помощью этого "((@)).*{"
я могу сопоставить первую строку. Но как я могу сопоставить все, что находится внутри внешних фигурных скобок. независимо от наличия новых строк (n) или нет?
Ответ №1:
Некоторые реализации имеют глобальный флаг /g
, некоторые позволяют сопоставлять разрывы с помощью [sS]
. Поскольку у меня не установлен VSCode, я не могу проверить, что для него верно.
Проблема в том, чтобы найти окончание }
, поскольку в коде примера есть некоторые (и их может быть даже больше в других css-переходах.
Возможно, вы захотите попробовать:
@.*?{[sS] ?n}
Двойные закругленные скобки вокруг @
не имеют для меня никакого смысла. Один из них может иметь смысл, если вы хотите, чтобы пение было в группе, но я не вижу необходимости в этом 😉
Смотрите https://regexr.com/5duqs
Комментарии:
1. Это работает, единственное исключение — когда все находится в одной строке.
2. Это правильно, но, поскольку вы не можете считать в регулярных выражениях, нет способа действительно сопоставить это в oneline-string . Если вы уверены, что у вас всегда будет ровно 2 параметра ключевого кадра, вы могли бы
@([Ss]*?{){3}([Ss]*?}){2}