REGEX_EXTRACT_FIRST

All functions > STRING > REGEX_EXTRACT_FIRST

Returns the first substring matching a regular expression pattern, optionally extracting a specific capture group.

Signatures

Returns: The matched substring, or NULL if no match

REGEX_EXTRACT_FIRST(string: VARCHAR, pattern: VARCHAR, [group_number: BIGINT]) → VARCHAR
sql
ParameterTypeRequiredDescription
stringVARCHARYesString to search in
patternVARCHARYesRegular expression pattern (use capture groups for extraction)
group_numberBIGINTNoCapture group to return (0 = full match, 1 = first group, etc.). Defaults to 0

Notes

  • Group 0 (default) returns the entire match
  • Group 1+ returns the corresponding capture group
  • Returns NULL if the pattern does not match
  • Only the first match is returned

Examples

FeatureQL
SELECT
    f1 := REGEX_EXTRACT_FIRST('abc123def', '[0-9]+'),  -- Extract digits
    f2 := REGEX_EXTRACT_FIRST('2024-01-15', '(\d{4})-(\d{2})-(\d{2})', 1),  -- Extract year
    f3 := REGEX_EXTRACT_FIRST('2024-01-15', '(\d{4})-(\d{2})-(\d{2})', 2),  -- Extract month
    f4 := REGEX_EXTRACT_FIRST('2024-01-15', '(\d{4})-(\d{2})-(\d{2})', 3),  -- Extract day
    f5 := REGEX_EXTRACT_FIRST('no match here', '[0-9]+')  -- No match returns empty
;
Result
f1 VARCHARf2 VARCHARf3 VARCHARf4 VARCHARf5 VARCHAR
12320240115(empty)

Last update at: 2026/03/03 16:47:38
Last updated: 2026-03-03 16:48:19