Pattern matching operators
This page describes the available operators to assist with performing pattern
matching. For operators using regular expressions (regex in the syntax), QuestDB uses
Java regular expression implementation.
~ (match) and !~ (does not match)#
(string) ~ (regex)- returns true if thestringvalue matches a regular expression,regex, otherwise returns false (case sensitive match).(string) !~ (regex)- returns true if thestringvalue fails to match a regular expression,regex, otherwise returns false (case sensitive match).
Arguments#
stringis an expression that evaluates to thestringdata type.regexis any regular expression pattern.
Return value#
Return value type is boolean.
LIKE/ILIKE#
(string) LIKE (pattern)- returns true if thestringvalue matchespattern, otherwise returns false (case sensitive match).(string) ILIKE (pattern)- returns true if thestringvalue matchespattern, otherwise returns false (case insensitive match).
Arguments#
stringis an expression that evaluates to thestringdata type.patternis a pattern which can contain wildcards like_and%.
Return value#
Return value type is boolean.
Description#
If the pattern doesn't contain wildcards, then the pattern represents the string itself.
The wildcards which can be used in pattern are interpreted as follows:
_- matches any single character.%- matches any sequence of zero or more characters.
Wildcards can be used as follows:
ILIKE performs a case insensitive match as follows:
Examples#
LIKE#
| symbol | side | price | amount | timestamp |
|---|---|---|---|---|
| ETH-USD | sell | 1348.13 | 3.22455108 | 2022-10-04T15:25:58.834362Z |
| BTC-USD | sell | 20082.08 | 0.16591219 | 2022-10-04T15:25:59.742552Z |
ILIKE#
| symbol | side | price | amount | timestamp |
|---|---|---|---|---|
| ETH-USD | sell | 1348.13 | 3.22455108 | 2022-10-04T15:25:58.834362Z |
| BTC-USD | sell | 20082.08 | 0.16591219 | 2022-10-04T15:25:59.742552Z |
regexp_replace#
regexp_replace (string1, regex , string2 ) - provides substitution of new text
for substrings that match regular expression patterns.
Arguments:#
string1is a sourcestringvalue to be manipulated.regexis a regular expression pattern.string2is anystringvalue to replace part or the whole of the source value.
Return value#
Return value type is string. The source string is returned unchanged if there is no match to the pattern. If
there is a match, the source string is returned with the replacement string
substituted for the matching substring.