当字符串中有\ n时,我们如何使用REGEXP_SUBSTR?

时间:2017-01-05 01:53:09

标签: oracle11g

我有一个带有'\ n'的字符串,其中没有引号,想知道REGEXP_SUBSTR的语法是什么。

e.g。 我的字符串是,

'a \ nnbc'。

当我尝试运行命令时,

SELECT REGEXP_SUBSTR ('a\nnbc',
                      '[^\n]+',
                      1,
                      LEVEL
                      )
          AS myelement
  FROM DUAL

按水平连接< = REGEXP_COUNT('a \ nnbc','\ n')+ 1            AND PRIOR SYS_GUID()不是NULL

我得到了

MYELEMENT

一个
BC

但我希望结果是

MYELEMENT

一个
NBC

感谢!

1 个答案:

答案 0 :(得分:0)

下面

LEVEL <= REGEXP_COUNT ('a\nnbc', '\n')+1 
  

它将消除字符串中的所有'\ n'   这意味着它将继续进行直到所有n匹配

SELECT REGEXP_SUBSTR ('a\nnnbc',
                      '[^\]+',
                      1,level)
          AS myelement
  FROM DUAL
  CONNECT BY LEVEL <= REGEXP_COUNT ('a\nnbc', '\n',1) AND PRIOR SYS_GUID () IS NOT NULL;  

这将给出答案

  

     

nnbc