Я придумал для себя упражнение, и теперь мне трудно понять, как работает регулярное выражение.Я хочу найти решение с правильным объяснением, чтобы я мог избавиться от некоторых сомнений по поводу регулярных выражений.Я пытаюсь все даты в моей строке;месяц, год и день.Вот моя строка и то, что я сделал:
date_str="je suis ne le 23 Oct 2002,\
I was born on 23 October 2002,\
just Oct 23 2002,\
ye gusta October 23 2002"
re.findall(r' \d{2}\ ?[a-zA-Z]* \d{2,4}', date_str)
#Out[162]:
[' 23 Oct 2002', ' 23 October 2002', ' 23 2002', ' 23 2002']
Я также посмотрел некоторые коды, и иногда использовался знак вопроса и двоеточие, чтобы сказать, что группа встречается 0 или 1 раз.Я не знаю, что означает толстая кишка.Но я попробовал что-то еще, что также дает мне тот же результат, что и выше.
re.findall(r' (?:\d{2})\ ?[a-zA-Z]*\ \d{2,4}', date_str)
#Out[162]:
[' 23 Oct 2002', ' 23 October 2002', ' 23 2002', ' 23 2002']
Во-первых, я не могу получить последние две даты, но я не могу понять, что такое двоеточиетак как я даже не вижу этого в своей строке.Плюс, почему я не могу получить знак вопроса вне группы?Это дает мне ошибку