Извлечение даты с помощью Regexp_extract bigquery
имеются строки содержащие дату в формате 01.10.2021, при этом с строке может содержаться текст.
Пробовал следующим образом
REGEXP_EXTRACT(Дата когда записали, r'^[0-9]{2}[/\.][0-9]{2}[/\-][0.9]{4}$')
и так же еще один вариант
REGEXP_EXTRACT(Дата когда записали, '%d.%m.%Y')
оба варианта возвращает null
Как можно исправить?
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
В регулярном выражении должна быть захватывающая подмаска, иначе REGEXP_EXTRACT не сможет вернуть значение.
Кроме того, если дата не является строкой целиком, нельзя использовать якори ^ и $, так как они требуют наличия начала или конца строки соответственно.
[0.9] - это явная опечатка.
Используйте
REGEXP_EXTRACT(Дата когда записали, r'(?:\D|^)(\d{2}[-/.]\d{2}[-/.]\d{4})(?:\D|$)')
См. пример работы регулярного выражения.
Подробности
(?:\D|^)- начало строки или символ, отличный от цифрового(\d{2}[-/.]\d{2}[-/.]\d{4})- Захватывающая подмаска №1: две цифры, символ-,/или., две цифры, символ-,/или., четыре цифры(?:\D|$)- конец строки или символ, отличный от цифрового