Главная > SQL > Регулярные выражения. Удаление последней буквы или цифры в строке.


Регулярные выражения. Удаление последней буквы или цифры в строке.

Используем регулярное выражение с REGEXP_LIKE для удаления последней буквы в строке:

with t as
(           select 'H18.DHSHJ7' as str from dual
 union all  select 'H18.AAA1A' from dual
 union all  select 'H18.AAA10' from dual 
 union all  select 'H18.AAAB4B' from dual  
)
select t.str, regexp_replace(str, '[[:alpha:]]$','')
from t

SQL> 
STR        REGEXP_REPLACE(STR,'[[:ALPHA:]
---------- ------------------------------------------------------------------
H18.DHSHJ7 H18.DHSHJ7
H18.AAA1A  H18.AAA1
H18.AAA10  H18.AAA10
H18.AAAB4B H18.AAAB4

Для удаления последней цифры заменяем [[:alpha:]] на [[:digit:]]

with t as
(           select 'H18.DHSHJ7' as str from dual
 union all  select 'H18.AAA1A' from dual
 union all  select 'H18.AAA10' from dual 
 union all  select 'H18.AAAB4B' from dual  
)
select t.str, regexp_replace(str, '[[:digit:]]$','')
from t

SQL> 
STR        REGEXP_REPLACE(STR,'[[:DIGIT:]
---------- -------------------------------------------------------------------
H18.DHSHJ7 H18.DHSHJ
H18.AAA1A  H18.AAA1A
H18.AAA10  H18.AAA1
H18.AAAB4B H18.AAAB4B

Похожие записи:

  1. mbb
    10 Май 2018 в 13:54 | #1

    А вот так удаляет все последние буквы до цифры (Oracle 11g):

    with t as
    (           select 'H18.DHSHJ7' as str from dual
     union all  select 'H18.AAA1AAAA' from dual
     union all  select 'H18.AAA10' from dual 
     union all  select 'H18.AAAB4BB' from dual  
    )
    select t.str, regexp_replace(str, '[[:alpha:]]+$','')
    from t
  2. Zaraki
    19 Январь 2024 в 18:28 | #2

    А как через regex_replace написать выражение, что бы удалить первый и последний символ в строке с учетом того, что они «одиночки»?
    В примере ниже нужно удалить буквы «с» и «г», при этом буквы в наименовании город не должны быть удалены

    
    

    SELECT ‘г Москва’ nme from dual
    UNION ALL
    SELECT ‘Москва г’ from dual
    UNION ALL
    SELECT ‘Архыз с’ from dual
    UNION ALL
    SELECT ‘с Архыз’ from dual
    UNION ALL
    SELECT ‘г о Улан-Удэ’ from dual
    UNION ALL
    SELECT ‘Агрос село’ from dual
    UNION ALL
    SELECT ‘Арзамас г’ from dual
    UNION ALL
    SELECT ‘г Гагарин’ from dual
    UNION ALL
    SELECT ‘г Санкт-Петербург’ from dual
    UNION ALL
    SELECT ‘Санкт-Петербург г’ from dual

  1. Пока что нет уведомлений.