У меня есть программа, в которой пользователь может ввести строку и указать дату в строке. Я использую RegEx, чтобы соответствовать \d+\/\d+\/\d+
извлечь дату из строки, но по какой-то причине в моем тестовом случае, только последняя запись есть возможность работатьPython не может обработать дату с помощью регулярного выражения
import datetime
import re
dateList = []
dates = ["Foo (8/15/15) Bar", "(8/15/15)", "8/15/15"]
reg = re.compile('(\d+\/\d+\/\d+)')
for date in dates:
matching = reg.match(date)
if matching is not None:
print date, matching.group(1)
else:
print date, "is not valid date"
возвращается
Foo (8/15/15) Bar is not valid date
(8/15/15) is not valid date
8/15/15 8/15/15
Что-то не так с моим RegEx? Я тестировал его с RegEx101.com и, казалось, прекрасно работать
, если вы не хотите изучать регулярное выражение, я предлагаю вам использовать парсер [dateutil] (https://dateutil.readthedocs.org/en/latest/parser.html) – miraculixx