Я хочу получить %tagname%
из файла и скопировать их только в словарь tagname
в python.Как извлечь тэги с тэгами
ответ
это поможет вам список тегов
re.findall("%([^%]+)%", text)
Чтобы получить список тегов, вы можете использовать нежадную версию оператора +, который имеет преимущество в том, просто:
re.findall('%(.+?)%', text)
В самом деле, .+?%
находит все символы любого типа (тег), и останавливает как только%
найден (это «не жадный» часть).
В тесте на скорость ниже, нежадная версия этого ответа медленнее, чем «не другой% знак» версия с коэффициентом почти 2, хотя:
python -m timeit -s'import re; t="%t1% lkj lkj %long tag% lkj lkj"*1000' 're.findall("%([^%]+)%", t)'
1000 loops, best of 3: 874 usec per loop
python -m timeit -s'import re; t="%t1% lkj lkj %long tag% lkj lkj"*1000' 're.findall("%(.+?)%", t)'
1000 loops, best of 3: 1.43 msec per loop
все же * много * нет эффективный. Лучше всего избегать использования неживых операторов в местах, где достаточно простого. –
@ Jared: Вы правы, не жадная версия может быть медленнее. Однако я считаю, что не жадная версия понятна, но это может быть вопросом личного вкуса. :) – EOL
Что у вас до сих пор , и как это не работает? –
Как выглядит _% тэг% _? –
это AZ, любой длины – DukeNukem