Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle中REGEXP_SUBSTR的混淆_Oracle_Oracle11g - Fatal编程技术网

oracle中REGEXP_SUBSTR的混淆

oracle中REGEXP_SUBSTR的混淆,oracle,oracle11g,Oracle,Oracle11g,我正在oracle学习REGEXP_SUBSTR 我试过: select REGEXP_SUBSTR('500 NANDA,KARKI,KUMAR','[^,]+',1,3) from dual; output is : KUMAR 无论我理解什么,我都会解释,如果我犯了错误,请改正。 [^,]->此逗号部分将从第一部分开始搜索,并将到达500 NANDA,part。 在它看到这个,之后,它将尝试从这个部分提取 KARKI,KUMAR 就像在substr(string,1,4)中一样,1是

我正在oracle学习REGEXP_SUBSTR

我试过:

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

output is : KUMAR
无论我理解什么,我都会解释,如果我犯了错误,请改正。 [^,]->此逗号部分将从第一部分开始搜索,并将到达
500 NANDA,
part。 在它看到这个
之后,它将尝试从这个部分提取

KARKI,KUMAR
就像在
substr(string,1,4)
中一样,1是第一个字符的位置,4是它的长度编号,但我期望上面的输出是

KAR
但是我得到的输出是
KUMAR
。它是怎么来的

来自您的代码-

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指定在第二个逗号(模式)之后获取字符串的第三部分

来自您的代码-

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(-出现模式)是如何给我输出KUMAR的?你为什么使用插入符号?我发现,如果在大括号内使用插入符号,那么它将与大括号中给出的模式不匹配。但在这里它是如何匹配的?我说的是插入符号。如果括号内使用插入符号,则会忽略大括号的内容是吗?例如:[^A-X]然后我看到输出Y或ZExactly,所以[^,]会告诉我获取除逗号以外的所有内容。这里的+符号有什么用?喂,兄弟,只有两个逗号,这3(-模式的出现)如何给我输出KUMAR?为什么使用插入符号?我发现,如果在大括号内使用插入符号,那么它将与大括号中给出的模式不匹配。但在这里它是如何匹配的?我说的是插入符号。如果括号内使用插入符号,则会忽略大括号的内容是吗?例如:[^A-X]然后我看到输出Y或ZExactly,因此[^,]将告诉我获取除逗号以外的所有内容。