Adds three scalar functions to SQLite.
regexp_match(string, regex)
regexp_search(string, regex)
regexp_replace(string, regex, replacement)regexp_match matches against the entire string returning 0 or 1.
SELECT REGEXP_MATCH('2020-01-01', '2020');
0
SELECT REGEXP_MATCH('2020-01-01', '2020-.*');
1
regexp_search matches against any part of the string returning 0 or 1.
SELECT REGEXP_SEARCH('duck duck', 'goose');
0
SELECT REGEXP_SEARCH('duck duck goose', 'goose');
1
regexp_replace matches against any part of the string returning the formatted replacement.
SELECT REGEXP_REPLACE('1/1/1985', '([0-9]+)/([0-9]+)/([0-9]+)', '\3-\1-\2');
1985-1-1
Replacement strings also include support for grouping and conditionals and literal parenthesis must be escaped.
SELECT REGEXP_REPLACE('1/1/1985', '([0-9])?([0-9])/([0-9])?([0-9])/([0-9]*)', '\(\5-(?{1}\1:0)\2-(?{3}\3:0)\4\)');
(1985-01-01)
Requires boost.
Run make then load in sqlite via .load 'path/to/dist/sqlite3-regexp.so'
Run make add_to_rc to add the compiled extension to your ~/.sqliterc file and be preloaded whenever you start sqlite.
Stolen from sqlite3-extras but with parameters reordered to more closely match other SQL dialects.