我想将我在乳胶中的所有引用从 更改\cite{authoryear}
为[\Citealt{authoryear}]
.
为此,我尝试了
re.sub(r"\cite{[a-zA-Z0-9]}", r"[\Citealt{a-zA-Z0-9]}]", "bla bla \cite{doe2013}")
但这根本不起作用。我怎样才能做到这一点?
您可以使用反向引用。您应该查看 re.sub 文档http://docs.python.org/2/library/re.html#re.sub我创建了一个小示例:
re.sub(r'\cite{(.*)}', r'[\Citealt{\1}]', '\cite{123}')
括号表示组,它们按左括号出现的顺序编号。您可以使用反向引用\1 ... \9 来引用前九个组。
很久以前就提出过问题,作者可能不再关心它了……但这是 AFAIK 对这个问题的更好回答:
re.sub(r'\\cite{(.*?)}', r'[\\Citealt{\1}]', '\\cite{123} -- \\cite{234}')
特别是,这考虑了几个要素:
.*?
带有惰性量词\