3

この特定のケースでは、次のように、latexコマンドの引数を抽出したいと思います。

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

item1、item2などを含むリストを取得するPythonの関数はありますか?

私は次のようなものを想像します:

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

テキストをスキャンして、2つの区切り文字セットに含まれるすべての引数のリストを返す関数。

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 に答える