Как извлечь теги с разделителями в%? - PullRequest
2 голосов
/ 19 апреля 2010

Я хочу получить %tagname% из файла и скопировать их в словарь только tagname в python.

Ответы [ 2 ]

7 голосов
/ 19 апреля 2010

вы получите список тегов

re.findall("%([^%]+)%", text)
2 голосов
/ 19 апреля 2010

Чтобы получить список тегов, вы можете использовать нежадную версию оператора +, которая имеет простое преимущество:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...