Моя цель - найти все возрастные слова в документе. В качестве примера, в предложении «Ей двадцать два. И она любит тебя. И ты никогда не узнаешь, как это меня смущает», я хотел бы найти двадцать два. Но regex.finditer всегда возвращает двадцать вместо двадцати двух.
enter code here
regex_list = {}
regex_list['before_age'] = (r'age|aged|he\s*is|she\s*is|she\'s|he\'s')
regex_list["nums_as_words"] = (r'two|twenty|twenty-two')
p = r'(?i)(({before_age})\s*[a\s|an\s]?\s*({number_words}))'.format(
before_age = regex_list['before_age'],
number_words = regex_list["nums_as_words"]
)
text = "She's twenty-two. And she's loving you. And you'll never know how it makes me blue"
for match in regex.finditer(p, str(text)):
if match.group(3):
print (match.group(3))
Возвращает: двадцать