Считать весь файл в строку, тогда \ A соответствует только началу строки, а \ Z соответствует только концу строки. С re.MULTILINE '^' соответствует началу строки и сразу после новой строки, а '$' соответствует концу строки и непосредственно перед новой строкой. См. Документацию Python для re синтаксиса .
import re
data = '''sentence one.
sentence two.
a bad sentence
sentence three.
sentence four.'''
# find lines ending in a period
print re.findall(r'^.*\.$',data,re.MULTILINE)
# match if the first line ends in a period
print re.findall(r'\A^.*\.$',data,re.MULTILINE)
# match if the last line ends in a period.
print re.findall(r'^.*\.$\Z',data,re.MULTILINE)
Выход:
['sentence one.', 'sentence two.', 'sentence three.', 'sentence four.']
['sentence one.']
['sentence four.']