Путаница в REGEXP_SUBSTR в oracle - PullRequest
1 голос
/ 06 февраля 2020

Я изучаю REGEXP_SUBSTR в oracle.

Я пытался:

select REGEXP_SUBSTR('500 NANDA,KARKI,KUMAR','[^,]+',1,3) from dual;

output is : KUMAR

Что бы я не понял, я объясню и, пожалуйста, исправлю это, если я допустил ошибку. [^,] -> Эта часть запятой будет найдена в первой части и достигнет 500 NANDA, части. После того, как он увидит ,, он попытается извлечь из этой части

KARKI,KUMAR

Как и в substr(string,1,4), 1 - это позиция первого символа, а 4 - нет длины, которую он будет * 1018. * но я ожидаю, что вывод выше был

KAR

Но я получил вывод как KUMAR. Как это происходит?

1 Ответ

3 голосов
/ 06 февраля 2020

Из вашего кода -

select REGEXP_SUBSTR(
                     '500 NANDA,KARKI,KUMAR'  --string
                    ,'[^,]+'                  -- Pattern (Inside Bracket) to fetch sub-string and + sign denotes anything after the comma
                    ,1                        -- start_position of string to start searching the pattern
                    ,3                        -- Occurrence of the pattern.
                    ) from dual;

Итак, 3 указывает, что нужно извлечь 3-ю часть строки после 2-й запятой (pattern).

REGEXP_SUBSTR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...