Sql Oracle—如果分隔符(;)位于行的开头,则查找它在多字符串中的位置

Sql Oracle—如果分隔符(;)位于行的开头,则查找它在多字符串中的位置,sql,oracle,oracle11g,oracle10g,Sql,Oracle,Oracle11g,Oracle10g,输出: 五, 我想要的职位;在这一行的开头出现。有人能帮忙吗?试试: SELECT REGEXP_INSTR('1234;67;89 ; ',';') FROM DUAL; 您应该使用m匹配参数并将您的模式修改为^ SELECT REGEXP_INSTR('1234;67;89 ; ' ,'(^|'||chr(10)||');') FROM DUAL; 选择REGEXP_INSTR('1234;67;89; ; 来自对偶的','^;',1,1,1,'m'; 输出: SELECT REG

输出: 五,

我想要的职位;在这一行的开头出现。有人能帮忙吗?

试试:

SELECT  REGEXP_INSTR('1234;67;89
;
',';') FROM DUAL;

您应该使用
m
匹配参数并将您的模式修改为
^

SELECT  REGEXP_INSTR('1234;67;89
;
'
,'(^|'||chr(10)||');') FROM DUAL;
选择REGEXP_INSTR('1234;67;89; ; 来自对偶的','^;',1,1,1,'m'; 输出:

SELECT REGEXP_INSTR('1234;67;89; ; ','^;',1, 1, 1, 'm') FROM DUAL; 13
如果输入字符串为
,则在中显示更多信息;1234\n此答案将获得第二个
的位置不是字符串开头的字符(在获取换行符位置时,还需要向位置添加一个)。OP的问题不清楚这是否是期望的行为,但如果是,则不需要使用正则表达式,可以执行
INSTR(str,CHR(10)| |')+1
@MT0-是的,您是正确的,谢谢。我的答案没有在开头检查
用于第一行。已编辑。更新的查询将为两个
;”返回1
”\n;'
但是第二个字符串具有
在第二个字符处。
13