Extracts substrings from strings using regular expressions.
REGEXP_SUBSTR( expression, regular-expression [, start-offset [ , occurrence-number [, escape-expression ] ] ] )
expression The string to be searched.
regular-expression The pattern you are trying to match. For more information about regular expression syntax, see Regular expressions.
start-offset The offset into expression at which to start searching. start-offset is expressed as a positive integer, and reflects the number of characters to count when starting from the left side of the string. The default is 1 (the start of the string).
occurrence-number In the case of multiple matches within expression, specify an integer indicating the occurrence to locate. For example, 3 finds the third occurrence. The default is 1.
escape-expression The escape character to use for regular-expression. The default is the backslash character (\).
REGEXP_SUBSTR returns NULL if regular-expression is not found.
When matching against a character class that contains only a sub-character class, remember to include the outer square brackets
as well as the square brackets for the sub-character class (for example, REGEXP_SUBSTR (expression, '[[:digit:]]')). For more on sub-character class matching, see Regular expressions: Special sub-character classes.
SQL/2003 Vendor extension.
The following example breaks values in the Employees.Street column into street number and street name:
SELECT REGEXP_SUBSTR( Street, '^\S+' ) as street_num,
REGEXP_SUBSTR( Street, '(?<=^\S+\s+).*$' ) AS street_name
FROM Employees; |
| street_num | street_name |
|---|---|
| 9 | East Washington Street |
| 7 | Pleasant Street |
| 539 | Pont Street |
| 1244 | Great Plain Street |
| ... | ... |
To determine whether the IP address of the current connection is in a range of IP addresses (in this case, 10.25.101.xxx or 10.25.102.xxx), you can execute the following statement:
IF REGEXP_SUBSTR( CONNECTION_PROPERTY( 'NodeAddress' ), '\\d+\\.\\d+\\.\\d+' )
IN ( '10.25.101' , '10.25.102' ) THEN
MESSAGE 'In range' TO CLIENT;
ELSE
MESSAGE 'Out of range' TO CLIENT;
END IF |
| Send feedback about this page via email or DocCommentXchange | Copyright © 2008, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.0 |