我试图从汤姆森路透Web of Science中提取ISI风格的出版年份数据。 "出版年份"这一行看起来像这样(位于一行的最开头):
PY 2015
我正在编写的脚本中,我定义了以下的正则表达式函数:
import re
f = open('savedrecs.txt')
wosrecords = f.read()
def findyears():
result = re.findall(r'PY (\d\d\d\d)', wosrecords)
print result
findyears()
然而,这会导致误报,因为该模式可能出现在数据的其他位置。
所以,我想只匹配行首的模式。通常情况下我会使用^
来达到这个目的,但是r'^PY (\d\d\d\d)'
没有匹配到我的结果。另一方面,使用\n
似乎可以实现我想要的效果,但这可能会给我带来进一步的复杂性。
re.MULTILINE
来改变^
的语义:re.findall(r'^PY (\d\d\d\d)', wosrecords, re.MULTILINE)
。 - Amadan