Как правильно итерировать с re.sub () в Python
Я хочу сделать скрипт Python, который создает сноски. Идея состоит в том, чтобы найти все строки вида"Some body text.{^}{Some footnote text.}"
и заменить их"Some body text.^#"
, где"^#"
правильный номер сноски. (Другая часть моего сценария имеет дело с печатью сносок внизу файла.) Текущий код, который я использую для этого:
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)
Это прекрасно работает, но кажется странным объявить переменную (i
) внеcreate_footnote_numbers
функции, а затем должны вызвать его внутри этой функции. Я бы подумал, что внутри будет что-тоre
что бы вернуть номер матча.