5.4 KiB
The {{< product-name >}} SQL implementation uses the PCRE-like regular expression syntax (excluding some features such as look-around and back-references) and supports the following regular expression functions:
regexp_count
Returns the number of matches that a regular expression has in a string.
regexp_count(str, regexp[, start, flags])
Arguments
- str: String expression to operate on. Can be a constant, column, or function, and any combination of operators.
- regexp: Regular expression to operate on. Can be a constant, column, or function, and any combination of operators.
- start: Optional start position (the first position is 1) to search for the regular expression. Can be a constant, column, or function.
- flags: Optional regular expression flags that control the behavior of the
regular expression. The following flags are supported:
- i: (insensitive) Ignore case when matching.
- m: (multi-line)
^
and$
match the beginning and end of a line, respectively. - s: (single-line)
.
matches newline (\n
). - R: (CRLF) When multi-line mode is enabled,
\r\n
is used to delimit lines. - U: (ungreedy) Swap the meaning of
x*
andx*?
.
{{< expand-wrapper >}}
{{% expand "View regexp_count
query example" %}}
The following example uses the {{< influxdb3/home-sample-link >}}.
SELECT DISTINCT
room,
regexp_count(room::STRING, '[Ro]', 1, 'i') AS regexp_count
FROM home
room | regexp_count |
---|---|
Kitchen | 0 |
Living Room | 3 |
{{% /expand %}} {{< /expand-wrapper >}}
regexp_like
True if a regular expression has at least one match in a string; false otherwise.
regexp_like(str, regexp[, flags])
Arguments
- str: String expression to operate on. Can be a constant, column, or function, and any combination of string operators.
- regexp: Regular expression to test against the string expression. Can be a constant, column, or function.
- flags: Optional regular expression flags that control the behavior of the
regular expression. The following flags are supported:
- i: (insensitive) Ignore case when matching.
- m: (multi-line)
^
and$
match the beginning and end of a line, respectively. - s: (single-line)
.
matches newline (\n
). - R: (CRLF) When multi-line mode is enabled,
\r\n
is used to delimit lines. - U: (ungreedy) Swap the meaning of
x*
andx*?
.
{{< expand-wrapper >}}
{{% expand "View regexp_like
query example" %}}
The following example uses the {{< influxdb3/home-sample-link >}}.
SELECT DISTINCT
room,
regexp_like(room::STRING, 'R', 'i') AS regexp_like
FROM home
room | regexp_like |
---|---|
Kitchen | false |
Living Room | true |
{{% /expand %}} {{< /expand-wrapper >}}
regexp_match
Returns a list of regular expression matches in a string.
regexp_match(str, regexp, flags)
Arguments
- str: String expression to operate on. Can be a constant, column, or function, and any combination of string operators.
- regexp: Regular expression to match against. Can be a constant, column, or function.
- flags: Regular expression flags that control the behavior of the
regular expression. The following flags are supported.
- i: (insensitive) Ignore case when matching.
{{< expand-wrapper >}}
{{% expand "View regexp_match
query example" %}}
The following example uses the {{< influxdb3/home-sample-link >}}.
[!Note]
regexp_match
returns a list Arrow type. Use bracket notation to reference a value in the list. Lists use 1-based indexing.
SELECT DISTINCT
room,
regexp_match(room::STRING, '.{3}')[1] AS regexp_match
FROM home
room | regexp_match |
---|---|
Kitchen | Kit |
Living Room | Liv |
{{% /expand %}} {{< /expand-wrapper >}}
regexp_replace
Replaces substrings in a string that match a regular expression.
regexp_replace(str, regexp, replacement, flags)
Arguments
- str: String expression to operate on. Can be a constant, column, or function, and any combination of string operators.
- regexp: Regular expression to match against. Can be a constant, column, or function.
- replacement: Replacement string expression. Can be a constant, column, or function, and any combination of string operators.
- flags: Regular expression flags that control the behavior of the
regular expression. The following flags are supported.
- g: (global) Search globally and don't return after the first match.
- i: (insensitive) Ignore case when matching.
{{< expand-wrapper >}}
{{% expand "View regexp_replace
query example" %}}
The following example uses the {{< influxdb3/home-sample-link >}}.
SELECT DISTINCT
room,
regexp_replace(room::STRING, '\sRoom', '', 'gi') AS regexp_replace
FROM home
room | regexp_replace |
---|---|
Kitchen | Kitchen |
Living Room | Living |
{{% /expand %}} {{< /expand-wrapper >}}