Я пытаюсь почистить содержимое этого сайта .Как показано ниже, у меня есть список всех абзацев, содержащих регулярное выражение "\ d + \ s (\ w {3})".
events = response.xpath('//p[re:match(text(), "\d+\s\(\w{3}\)")]').extract()
Я хочу, чтобы регулярное выражение получало весь текст между "\ d + \ s (\ w {3})" и "\ d {2} 00" из каждого абзаца, исключая сопоставленные с регулярным текстом тексты.
Ниже работает, но я хочу строку между ними.
for ev in events:
event_detail = re.search(r'\d+\s\(\w{3}\).*?\d{2}00', ev)
Я попробовал ниже, но не повезло, но получил ошибку "sre_constants.error: для просмотра требуется шаблон фиксированной ширины":
for ev in events:
event_detail = re.search('(?<=(\d+\s\(\w{3}\))(.*?)(\d{2}00)', ev)
print(event_detail)
Как я могу написать правильное регулярное выражение, используя lool-behind и упреждающий просмотр?
[Решено] Я избавился от "+" в моем регулярном выражении.Ниже работает отлично.
for ev in events:
event_detail = re.search(r'(?<=\d\s\(\w{3}\)).*(?=\d{2}00)', ev)
print(event_detail)