2

我想从文件中获取并仅在 python 中将%tagname%它们复制到字典中。tagname

4

2 回答 2

7

这将为您提供标签列表

re.findall("%([^%]+)%", text)
于 2010-04-19T05:55:54.573 回答
2

要获取标签列表,可以使用 + 运算符的非贪婪版本,它的优点是简单:

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
于 2010-04-19T07:49:03.853 回答