脚注を作成するPythonスクリプトを作成します。考え方は、並べ替え"Some body text.{^}{Some footnote text.}"
のすべての文字列を見つけ、"Some body text.^#"
に置き換えます。ここで、"^#"
は適切な脚注番号です。 (。私のスクリプトの異なる部分は、実際にファイルの下部に脚注をプリントアウトを扱う)私はこのために使用している現在のコードは次のようになります。Pythonでre.sub()を適切に反復する方法
pattern = r"\{\^\}\{(.*?)\}"
i = 0
def create_footnote_numbers(match):
global i
i += 1
return "<sup>"+str(i)+"</sup>"
new_body_text = re.sub(pattern, create_footnote_numbers, text)
これは正常に動作しますが、持っている奇妙なようですcreate_footnote_numbers
関数の外に変数(i
)を宣言し、その関数内で変数を呼び出さなければなりません。私は一致の番号を返すre
の中に何かがあると思っていたでしょう。あなたが番号を追跡するためにクラスを使用することができるように
興味深い、ありがとうございました。なぜあなたはあなたの 'def __init __()'に 'start ='を持っていますか?それを省略し、 '__init __()'の中で 'self.count = 1'を作るのはなぜでしょうか?これが愚かな質問である場合はお詫びします。私はまだクラスがPythonでどのように動作するかを把握しようとしています。 – Alan
@Alan:これで 'FootnoteNumbers(10)'を行うことができ、最初の脚注にその番号が与えられます。それは柔軟性の素晴らしい余分なビットです。あなたがしたい場合は省略することができます。 –
ああ、とてもいい。ありがとうございました。 – Alan