【发布时间】:2016-10-08 19:31:59
【问题描述】:
注意:我对正则表达式缺乏经验。
我希望能够将科学文章转换为 iTunes 曲目。为此,我将文本复制并粘贴到 txt 文件中,并将它们转换为语音曲目。但是,当我这样做时,参考文献被包括在内,并且计算机的声音会大声朗读它们,例如“(Smith J. et al. 2016)”,这很烦人,因为我希望它跳过括号中包含参考的任何内容。 因此,我想制作一个 python 脚本,在将 txt 文件转换为语音轨道之前从 txt 文件中删除所有这些引用。 我认为我可以使用以下代码来做到这一点:
start_ref=find("(")
finish_ref=find(")", start_ref)
# then remove all pieces of the string between each start and finish
但这还不够准确。相反,我想以某种方式使用正则表达式。
有人可以向我展示一些示例代码,说明我将如何从以下文本中迭代删除引用(同时考虑不同的引用样式,例如哈佛与 APA 等):
“该方法已被证明优于先前讨论的方法 (Smith, J. et al., 2014)虽然它有缺点,但很明显 利大于弊(Jones, A. & Karver, B., 2009 年,Lubber, H. 等人,2013 年)。”
谁能提供一些示例代码?
【问题讨论】:
-
我认为您需要的不仅仅是一个正则表达式来区分引用和其他括号短语。
-
呼应@chepner 的评论,正则表达式可能还不够。您可能想看看自然语言处理。
-
只满足一种不同的风格 - 哈佛 或 APA - 本身已经是一个相当大的挑战。轻率地试图抓住两者只会导致更多的错误匹配。
-
是的,从这些 cmets 来看,问题比想象的要复杂。下面的两个答案都适用于我在问题中给出的示例字符串,但是当涉及到实际的整篇论文时,这两个解决方案都不起作用....好吧,无论如何谢谢