0

我正在尝试使用 regexp_substr 在 [!< & >!] 中检索字符串。我有以下语句,但它返回了“使用 regexp_substr.>!] 进行测试”。如何排除 >!] 并仅返回字符串?

select regexp_substr('[!< To test with regexp_substr.>!]','[^[!<]+>!]') from dual

4

1 回答 1

0

此方法将开始和结束字符序列之间的所有内容分组(假设至少有 1 个字符),然后只返回该组字符。方括号需要转义,因此正则表达式引擎不会认为您指的是字符类。请注意,您的示例在第一个字母前面有一个空格,该空格保留在输出中:

select regexp_substr('[!< To test with regexp_substr.>!]','\[!<(.+)>!\]', 1, 1, 'i', 1) from dual;


STRING_EXAMPLE              
----------------------------
 To test with regexp_substr.
于 2015-04-08T19:20:34.157 回答