3

在这种特殊情况下,我想提取乳胶命令的参数,如下所示:

... latex code ...
\bibitem{item1} 
... latex code ...
\bibitem{item2}
... latex code ...

python中是否有任何函数可以检索包含item1、item2等的列表?

我会想象这样的事情:

latex_text.extract_argument("\bibitem{","}")

一个函数,它将扫描文本并返回包含在两个分隔符集中的每个参数的列表。

4

2 回答 2

3
import re

re.findall(r'\\bibitem\{(.*?)\}', latex_text)     # ['item1', 'item2']
于 2012-10-31T12:01:17.000 回答
2

使用re.search

import re

l = '\\bibitem{item1}'
m = re.search(r'\{([^}]*)\}', l)
print m.group(1) # => 'item1'

正则表达式的解释\{([^}]*)\}

  1. 我们正在寻找一个{我们必须逃避的起点\{
  2. 我们使用一个(...)包含
  3. 任意数量*的字符不是 }([^}]

来自步骤 2 的组是m.group(1)

于 2012-10-31T11:59:32.923 回答