Возврат нескольких результатов в 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