python在文本中区分带有正则表达式的参考方程



我试图删除一段文本中的所有引用 - 它们包含在括号中。因此,最简单的事情是一致删除括号中的所有内容...但是括号中的某些内容很重要,例如方程式...因此,我想我可以删除所有成本' et al。'的括号,但并非所有参考文献都有一个。谁能告诉我谁使用python表达式来区分格式'>>的方程式和参考(作者[可能[可能的],年)'

一致删除括号中包含内容的示例:

file=open("polymer_model.txt", "r")
mystring = file.read()
def a(test_str):
    ret = ''
    skip = 0
    for i in test_str:
        if i == '(':
            skip += 1
        elif i == ')'and skip2c > 0:
            skip -= 1
        elif skip == 0:
            ret += i
    return ret

x = a(mystring)

尝试删除所有括号中包含的内容的示例,其中包括:

x=re.sub(r'(w+ et al.)s?','',x)

假定平均扭曲能量等于(1/2)KT ,我们也有 TEFF =(C/KL)。(RMSD(TW))2 (Munteanu等,1998; Olson,1996; Olson and Zhurkin,2000)。但是,根据其他偏爱方程的研究,该模型有些基本。

应该是:

假定平均扭曲能量等于(1/2)kt,我们也有teff =(c/kl)。(rmsd(tw))2。但是,根据其他偏爱方程的研究,该模型有些基本。

我会尝试以下正则言论:

([A-Z]w+[^)]+?, (18|19|20)[0-9]{2})
  • 支架char
  • [A-Z] 作者应从Capitale Letter
  • 开始
  • w 作者的其余名称
  • [^)] ?除了关闭括号以外的其他所有内容
  • ,(19 | 20)[0-9] {2} 逗号,其次是一年。如果您在1900年之前发布了书籍,则必须添加年
  • 支架char

,但这只是一个很好的猜测。可能会有一个与此正则表达式匹配或不匹配的报价匹配的。但是我认为, year-部分在大多数情况下都应该这样做。

您可以在这里尝试更多示例:https://regex101.com/r/akmfdr/2

最新更新