Стек - лучший инструмент для задания: -
import re
def matches(line, opendelim='(', closedelim=')'):
stack = []
for m in re.finditer(r'[{}{}]'.format(opendelim, closedelim), line):
pos = m.start()
if line[pos-1] == '\\':
# skip escape sequence
continue
c = line[pos]
if c == opendelim:
stack.append(pos+1)
elif c == closedelim:
if len(stack) > 0:
prevpos = stack.pop()
# print("matched", prevpos, pos, line[prevpos:pos])
yield (prevpos, pos, len(stack))
else:
# error
print("encountered extraneous closing quote at pos {}: '{}'".format(pos, line[pos:] ))
pass
if len(stack) > 0:
for pos in stack:
print("expecting closing quote to match open quote starting at: '{}'"
.format(line[pos-1:]))
В клиентском коде, поскольку функция записывается как функция генератора, просто используйте шаблон for loop для разворачивания совпадений: -
line = '(((1+0)+1)+1)'
for openpos, closepos, level in matches(line):
print(line[openpos:closepos], level)
Этот тестовый код выводит следующий на моем экране, заметил, что второй параметр в распечатке указывает глубину в скобках.
1+0 2
(1+0)+1 1
((1+0)+1)+1 0
Да:
@import url("base.css");
Примечание:
@import
правило должно предшествовать все другие правила (кроме эти @charset
правило); и @import
требуют дополнительных запросов к серверу. Совокупный CSS в один файл для предотвращения нескольких Запросов HTTP. Таким образом, скопируйте содержание base.css
и special.css
в base-special.css
и ссылка [только 117]).
В 2008, не все браузеры поддерживали @import
(см. Совместимость браузера ).
Да, используйте подробную информацию @import
, легко погуглил для, хороший в http://webdesign.about.com/od/beginningcss/f/css_import_link.htm
В некоторых случаях это - возможное использование @import "file.css", и самые современные браузеры должны поддерживать, это, более старые браузеры, такие как NN4, немного сойдет с ума.
Примечание: оператор импорта должен предшествовать всем другим объявлениям в файле и протестировать его на всех Ваших целевых браузерах перед использованием его в производстве.
Правило CSS @import
делает просто это. Например,
@import url('/css/common.css');
@import url('/css/colors.css');
Эти @import url("base.css");
хорошо работает, но примите во внимание, что каждый @import
оператор является новым запросом к серверу. Это не могло бы быть проблемой для Вас, но когда оптимальная производительность требуется, необходимо избежать @import
.
Да. Импорт файла CSS в другой файл CSS возможен.
Это должно быть первое правило в таблице стилей с помощью @import правило .
@import "mystyle.css";
@import url("mystyle.css");
, которым единственный протест состоит в том, что более старые веб-браузеры не будут поддерживать его. На самом деле это - один из CSS 'взлом' для сокрытия стилей CSS от более старых браузеров.
Относятся к этот список для поддержки браузера.