Sto cercando di estrarre anni di pubblicazione in stile ISI dal Web of Science di Thomson-Reuters. La linea per "anno di pubblicazione" assomiglia a questo (proprio all'inizio di una riga):Uso di^per far corrispondere l'inizio della riga in Python regex
PY 2015
Per lo script sto scrivendo ho definito la seguente funzione regex:
import re
f = open('savedrecs.txt')
wosrecords = f.read()
def findyears():
result = re.findall(r'PY (\d\d\d\d)', wosrecords)
print result
findyears()
Questo , tuttavia, fornisce risultati falsi positivi perché il modello può apparire altrove nei dati.
Quindi, voglio solo abbinare il modello all'inizio di una linea. Normalmente userei lo ^
per questo scopo, ma r'^PY (\d\d\d\d)'
non riesce ad abbinare i miei risultati. D'altra parte, usare \n
sembra fare quello che voglio, ma ciò potrebbe portare a ulteriori complicazioni per me.
Utilizzare ['re.MULTILINE'] (http s: //docs.python.org/2/library/re.html#re.MULTILINE) per cambiare la semantica di '^': 're.findall (r '^ PY (\ d \ d \ d \ d)' , wosrecords, re.MULTILINE) ' – Amadan
Grazie Amadan! Questo ha risolto il mio problema. – chrisk