REGEXP_SUBSTR extends the functionality of the
SUBSTR function by letting you search a string for a regular expression pattern. It is also similar to
REGEXP_INSTR, but instead of returning the position of the substring, it returns the substring itself. This function is useful if you need the contents of a match string but not its position in the source string. The function returns the string as
CLOB data in the same character set as
This function complies with the POSIX regular expression standard and the Unicode Regular Expression Guidelines. For more information, refer toAppendix D, "Oracle Regular Expression Support".
source_char is a character expression that serves as the search value. It is commonly a character column and can be of any of the data types
pattern is the regular expression. It is usually a text literal and can be of any of the data types
NVARCHAR2. It can contain up to 512 bytes. If the data type of
pattern is different from the data type of
source_char, then Oracle Database converts
pattern to the data type of
source_char. For a listing of the operators you can specify in
pattern, refer to Appendix D, "Oracle Regular Expression Support".
position is a positive integer indicating the character of
source_char where Oracle should begin the search. The default is 1, meaning that Oracle begins the search at the first character of
occurrence is a positive integer indicating which occurrence of
source_char Oracle should search for. The default is 1, meaning that Oracle searches for the first occurrence of
occurrence is greater than 1, then the database searches for the second occurrence beginning with the first character following the first occurrence of
pattern, and so forth. This behavior is different from the
SUBSTR function, which begins its search for the second occurrence at the second character of the first occurrence.
match_parameter is a text literal that lets you change the default matching behavior of the function. The behavior of this parameter is the same for this function as for
REGEXP_COUNT. Refer to REGEXP_COUNT for detailed information.
pattern with subexpressions,
subexpr is a nonnegative integer from 0 to 9 indicating which subexpression in
pattern is to be returned by the function. This parameter has the same semantics that it has for the
REGEXP_INSTR function. Refer to REGEXP_INSTR for more information.
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 1, 'i')
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 2, 'i')
结果：12345678 该结果是第二个1234567890中的12345678 也就是说第二个匹配到的结果
SELECT REGEXP_SUBSTR('12345678901234567890', '(123)(4(56)(78))', 1, 3, 'i')
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/29320885/viewspace-1776036/，如需转载，请注明出处，否则将追究法律责任。