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