#oracle11g #regexp-replace
#oracle11g #регулярное выражение-заменить
Вопрос:
Я создаю новый столбец на основе большинства правильных значений из существующих значений ABP-1-3-3 CBP-1-10-12-14
Выставленные значения для нового столбца, которые я могу прочитать слева, значения, которые я получаю
-3
14
введите описание изображения здесь
Как я могу изменить приведенный ниже код с помощью regexp replace, чтобы удалить любой — ?
SUBSTR(TEST, -2, INSTR(TEST, ‘-‘)-1) КАК TEST2,
Комментарии:
1. Если вы используете python, вам просто нужно разделить его на — и принять -1 почему вы хотите использовать regex для этого?
2. Извините, я не упомянул его Oracle 11g
3. Я в замешательстве. является » ABP-1-3-3 CBP-1-10-12-14 » одна строка или две строки? Вы хотите получить значения «3» и «14»?
4. ABP-1-3-3 и CBP-1-10-12-14 это два разных значения. Я получаю -3 и 14. Я хочу 3 и 14.
5. Хорошо, это два разных значения, но находятся ли они в ОДНОЙ строке или в двух строках? Кроме того, формат всегда будет одинаковым?
Ответ №1:
Попробуйте это:
with test as
( select 'CBP-1-10-12-14' v1 from dual
union
select 'ABP-1-3-3' v1 from dual
)
select regexp_substr( v1 , '[0-9]*$' )
from test
Также взгляните на https://regex101.com/r/bS7hF5/1 . Это аккуратный сайт. Введите строку регулярного выражения, и она «переведет» ее в понятное для человека описание.
Комментарии:
1. Это так.. Большое спасибо.