Я пытаюсь извлечь данные года в формате ISI из Thomson-Reuters Web of Science. Линия для «Публикация года» выглядит следующим образом (в самом начале строки):Использование^для сопоставления начала строки в регулярном выражении Python
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'] (http s: //docs.python.org/2/library/re.html#re.MULTILINE) для изменения семантики '^': 're.findall (r '^ PY (\ d \ d \ d \ d)' , wosrecords, re.MULTILINE) ' – Amadan
Спасибо Амадан! Это решило мою проблему. – chrisk