How can I parse the foll. in python to extract the year:
\'years since 1250-01-01 0:0:0\'
The answer should be 1250
There are all sorts of ways to do it, here are several options:
dateutil parser in a "fuzzy" mode:
In [1]: s = 'years since 1250-01-01 0:0:0'
In [2]: from dateutil.parser import parse
In [3]: parse(s, fuzzy=True).year # resulting year would be an integer
Out[3]: 1250
regular expressions with a capturing group:
In [2]: import re
In [3]: re.search(r"years since (\d{4})", s).group(1)
Out[3]: '1250'
splitting by "since" and then by a dash:
In [2]: s.split("since", 1)[1].split("-", 1)[0].strip()
Out[2]: '1250'
or may be even splitting by the first dash and slicing the first substring:
In [2]: s.split("-", 1)[0][-4:]
Out[2]: '1250'
The last two involve more "moving parts" and might not be applicable depending on possible variations of the input string.