给出如下所示的线条:
Blah \cite[9.1173]{Joyce:1986aa}\autocite[42]{Kenner:1970ab}\autocite[108]{Hall:1960aa} bbb.\n
我想删除\autocite
的第二个(以及任何后续)事件,导致以下内容:
Blah \autocite[9.1173]{Joyce:1986aa}[42]{Kenner:1970ab}[108]{Hall:1960aa} bbb.\n
我正在努力以正则表达式表达这一点(我使用的是python 2.7 RE模块),但是,因为我不确定如何制定
“只有在\autocite
后跟[…]{…}
后才会删除{{1}},直到遇到空格或句号”。
答案 0 :(得分:3)
正则表达式不是灵丹妙药。
l = s.split('\\autocite')
print '%s\\autocite%s' % (l[0], ''.join(l[1:]))
答案 1 :(得分:0)
如果您绝对需要正则表达式,则可以使用(?<=\\autocite)(.*?)\\autocite(.*)
并替换为\1\2
。
但@Ignacio Vazquez-Abrams的答案更有效率。