regexp_substr
This function is used to return the substring that matches a specified pattern for the occurrence time, starting from start_position in the string source.
Syntax
regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]])
Parameters
Parameter | Mandatory | Type | Description |
|---|---|---|---|
source | Yes | STRING | String to be searched for |
pattern | Yes | STRING | Constant or regular expression of the STRING type. Pattern to be matched. |
start_position | No | BIGINT | Start position. The value must be greater than 0. If this parameter is not specified, the default value 1 is used, indicating that the matching starts from the first character of source. |
occurrence | No | BIGINT | The value is a constant of the BIGINT type, which must be greater than 0. If it is not specified, the default value 1 is used, indicating that the substring matched for the first time is returned. |
Return Values
The return value is of the STRING type.

- If the value of pattern is an empty string, an error is reported.
- If no match is found, NULL is returned.
- If the value of start_position or occurrence is not of the BIGINT type or is less than or equal to 0, an error is reported.
- If the value of source, pattern, start_position, occurrence, or return_option is NULL, NULL is returned.
Example Code
The value a is returned.
select regexp_substr('a1b2c3', '[a-z]'); The value b is returned.
select regexp_substr('a1b2c3', '[a-z]', 2, 1); The value c is returned.
select regexp_substr('a1b2c3', '[a-z]', 2, 2); The value NULL is returned.
select regexp_substr('a1b2c3', null); Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.

