Как проанализировать поле с шаблоном «userid-date-amount» в postgresql

Я работаю над запросом, в котором мне нужно проанализировать поле описания, которое соответствует шаблону «userid-date-amount-». Например, допустимое значение будет: 222826-2022/07/26-32,700,000-

Однако моя текущая реализация также извлекает значения, подобные следующим:

Tracking code: 1160685022- Date: 2022/07/26- Time: 21:02- Last 4 digits: None- First 4 digits: None- Amount: 350 thousand Dollars- To Paypal

Я хочу изменить свою логику синтаксического анализа, чтобы учитывать только значения, которые строго соответствуют формату «userid-date-amount-».

SELECT
  i."Id",
  i."Description",
  unnest(regexp_matches(i."Description", '(\d+)-(.*?)-(.*)-')) AS extracted_data
FROM "public"."Invoices" i

Мне также нужно разбить исходное значение на три отдельных поля, например: 222826, 2022/07/26 и 32 700 000.

Так? (\d+)-(\d{4}/\d\d/\d\d)-(\d[\d,]*)-regex101.com/r/mtasX7/1

The fourth bird 13.07.2024 13:18
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать шаблон более конкретным и сопоставить дату с шаблоном, используя цифры и косые черты.

Для суммы вы можете начать с одной цифры и сопоставить необязательные цифры или запятые (или даже сделать эту часть более конкретной в соответствии с разрешенным форматом).

(\d+)-(\d{4}/\d\d/\d\d)-(\d[\d,]*)-

Посмотрите демонстрацию регулярных выражений

Если ведущие цифры не должны частично совпадать со словом, вы можете начать с границы слова \y(\d+)

мерси, а насчет второй части? разбить исходное значение на три отдельных поля?

sci9 13.07.2024 13:26

@sci9 Вы имеете в виду, например, следующее: onecompiler.com/postgresql/42k22qwqz

The fourth bird 13.07.2024 13:32

да, это именно то, что я ищу

sci9 13.07.2024 14:03

Другие вопросы по теме