Возврат нескольких результатов в OpenRefine с использованием Python / Jython RegEx

Итак, я пытаюсь извлечь несколько дат, отображаемых как dd.mm.yyyy.

Некоторые ячейки содержат только одну дату, некоторые содержат несколько дат (например, от dd.mm.yyyy до dd.mm.yyyy) вместе с другими текстами, которые меня не интересуют.

Мне нужно было бы извлечь обе даты, чтобы создать два столбца - "От" и "До", оставляя пробелы для тех, в которых события произошли только в одну дату.

Я попытался использовать следующее выражение в Python / Jython, но оно возвращает только первые даты для ячеек, которые содержат более одной.

import re
g = re.search("([0-9])([0-9])\.([0-9])([0-9])\.([0-9])([0-9])([0-9])([0-9])", value)
return g.group()

Как мне вернуть обе даты?

Большое спасибо!

1 ответ

Решение

Ты можешь использовать .findall() чтобы получить все спички. Также сделайте ваше регулярное выражение немного проще, удалив группы захвата для каждой цифры и используя \d вместо [0-9]

import re
g = re.findall("\d{2}\.\d{2}\.\d{4}", value)
return g
Другие вопросы по тегам