我试图删除一段文本中的所有引用 - 它们包含在括号中。因此,最简单的方法是一致地删除括号中的所有内容......但括号中的某些内容很重要,例如方程... 所以我想我可以删除所有包含“ 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)
尝试删除所有括号内容的示例,其中包含“et al::
x=re.sub(r'(\w+ et al.\)s?','',x)
假设平均扭转能量等于(1/2)kT 我们还有 Teff =(C / kl)。(rmsd(Tw))2 (Munteanu等,1998; Olson,1996; Olson和Zhurkin,2000)。然而,根据其他更喜欢等式的研究,这个模型有些简陋:wαexp(-E / kT)(Schlick,1995)
应该是:
假设平均扭转能量等于(1/2)kT,我们也有Teff =(C / kl)。(rmsd(Tw))2。然而,根据其他更喜欢这个等式的研究,这个模型有些简陋:wαexp(-E / kT)
答案 0 :(得分:1)
我会尝试以下正则表达式:
\([A-Z]\w+[^\)]+?, (18|19|20)[0-9]{2}\)
但它只是一个很好的猜测。可能存在与此正则表达式匹配的公式或不匹配的报价。但我认为, year
- 部分应该在大多数情况下都这样做。
您可以在此处尝试更多示例: https://regex101.com/r/AKmfdr/2