Извлечение строки с заданным начальным и конечным шаблоном с использованием MySQL / Presto - PullRequest
2 голосов
/ 12 июля 2019

Попытка извлечь текст из строки с заданным начальным и конечным шаблоном.

Не знаю, с чего начать.Я огляделся по сторонам и попытался разобраться в функциях регулярных выражений, но они идут мне на ум.

Таблица:

+----+------------------------------------+
| id |              sentence              |
+----+------------------------------------+
|  1 | Hello, I am a bird.                |
|  2 | Hello, I am a cat. I like catfood. |
|  3 | Hello, I am a dog. I like bones.   |
+----+------------------------------------+

Попытка извлечь текст между Hello, и .

Выход:

+-------------+
|  sentence   |
+-------------+
| I am a bird |
| I am a cat  |
| I am a dog  |
+-------------+

1 Ответ

2 голосов
/ 12 июля 2019

Попробуйте с regexp_extract(col,regexp,capture_group) функцией в улье:

Hello,    //match "Hello," literal
([^.]*)  //then until first occurrence of .(period) capture as first group

Пример:

hive> select regexp_extract(sentence,"Hello,([^.]*)",1)sentence from( 
          --preparing sample data
           select stack(3,'Hello, I am a bird.','Hello, I am a cat. I like catfood.','Hello, I am a dog. I like bones.')
              as(sentence))t;

Результат:

sentence
 I am a bird
 I am a cat
 I am a dog
...