Как извлечь единицы из текста - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть названия продуктов. Они содержат единицы измерения: длина (M), масса (KG, G), количество (KS) и объем (L).

данные выборки:

enter image description here

Towels bam.m.3vrs.100%C.80ks
Towels Pet Expert 2x19m,2vrs.
Desserts 165g TK
Desserts AM 100g

Единицы следуют после номера. Как я могу извлечь их?

1 Ответ

1 голос
/ 23 апреля 2020

Вы можете использовать regexp_replace(), как:

regexp_replace(mycol, '.*\d(m|kg|g|ks|l).*', '\1')

Регулярное выражение ищет одну из предопределенных строк единиц, которой предшествует ди git.

Демонстрация на DB Fiddle :

with t as (
    select 'Towels bam.m.3vrs.100%C.80ks' mycol from dual
    union all select 'Towels Pet Expert 2x19m,2vrs' from dual
    union all select 'Desserts 165g TK' from dual
    union all select 'Desserts AM 100g' from dual
)
select mycol, regexp_replace(mycol, '.*\d(m|kg|g|ks|l).*', '\1') myunit from t
MYCOL                        | MYUNIT
:--------------------------- | :-----
Towels bam.m.3vrs.100%C.80ks | ks    
Towels Pet Expert 2x19m,2vrs | m     
Desserts 165g TK             | g     
Desserts AM 100g             | g     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...