我正在尝试使用regexp_substr来检索[!< &安培; &GT ;!]。我有以下声明,但它返回'用regexp_substr进行测试。>!]'。如何排除>!]并仅返回字符串?
选择regexp_substr(' [!<用regexp_substr测试。>!]',' [^ [!<] +>!]')来自双
答案 0 :(得分:0)
此方法将开始和结束字符序列之间的所有内容分组(假设至少有1个字符),然后返回该字符组。方括号需要进行转义,因此正则表达式引擎不会认为您指的是字符类。请注意,您的示例在第一个字母前面有一个空格,该空格保留在输出中:
select regexp_substr('[!< To test with regexp_substr.>!]','\[!<(.+)>!\]', 1, 1, 'i', 1) from dual;
STRING_EXAMPLE
----------------------------
To test with regexp_substr.