Próbuję wyodrębnić lata publikacji w stylu ISI z Thomson-Reuters Web of Science. Linia dla „Rok wydania” wygląda następująco (na samym początku linii):Używanie^do dopasowywania początku linii w Pythonie regex
PY 2015
za scenariusz piszę mam zdefiniowane następujące regex funkcję:
import re
f = open('savedrecs.txt')
wosrecords = f.read()
def findyears():
result = re.findall(r'PY (\d\d\d\d)', wosrecords)
print result
findyears()
ten daje jednak fałszywie dodatnie wyniki, ponieważ wzorzec może pojawić się w innych miejscach danych.
Tak więc, chcę dopasować tylko wzór na początku linii. Normalnie użyłbym do tego celu ^
, ale r'^PY (\d\d\d\d)'
zawodzi w dopasowywaniu moich wyników. Z drugiej strony, używanie \n
wydaje się robić to, co chcę, ale to może prowadzić do dalszych komplikacji dla mnie.
Użyj ['re.MULTILINE'] (http s: //docs.python.org/2/library/re.html#re.MULTILINE) aby zmienić semantykę '^': 're.findall (r '^ PY (\ d \ d \ d \ d)' , wosrecords, re.MULTILINE) ' – Amadan
Dziękuję Amadan! To rozwiązało mój problem. – chrisk