我正在尝试从论文的一部分中提取所有参考文献作为列表。现在,我只有一个段落并将其设置为字符串。
我想知道是否可以在python上使用正则表达式来做到这一点?我希望能够从字符串中提取多个单词,但是到目前为止,我所能做的只是提取年份,单个单词或字符,而不是一次提取整个引用。 另外,确实存在很多条件,因为引用的格式可能不同,例如:
text="As shown by Macelroy et al. (1967), bla bla. Podar & Reysenbach (2006) also researched ... Another example is ... (Valdes et al. 2008). Most notably .... Edwards, Bartlett & Stirling (2003)."
因此,有些数字放在方括号内,有些完全用方括号括起来,有些则有多个大写单词,有些则带有“ et al”,依此类推。是否可以在一次搜索中定义所有这些要求,然后将它们全部打印出来?
我知道有一些网站或程序可以放入本文中,以为我提取所有参考文献,但是我想知道自己如何做。
谢谢
NB:经过编辑以阐明引用将如何嵌入到字符串中
答案 0 :(得分:1)
import re
t = """
As shown by Macelroy et al. (1967), bla bla. Podar
& Reysenbach (2006) also researched ... Another example is ... (Valdes et al. 2008). Most notably .... Edwards, Bartlett & Stirling (2003).
"""
f = ["".join(result).replace("(","") for result in re.findall("([A-Z])([^A-Z)]+|[^.,]+)([0-9]{4})",t,re.S)]
print(f)
[^ A-Z)] + | [^。,] +匹配两种情况,
)
的字符串,.
的字符串,因为如果包含,
或.
可能匹配整个句子[0-9] {4}以4个数字结尾