Как правило, это решение для регулярных выражений, но, хотя sqlite теперь имеет возможность выполнять выражения REGEXP в предложениях WHERE, он не реализовал стандартную функцию regexp_replace, которую можно найти в более полных реализациях SQL.
Как использовать REGEXP в SQLite3 для извлечения совпавшей строки (в качестве значения столбца)
Чтобы запустить выражение вроде этого:
SELECT trim(regexp_replace(threeload.title, '\b([\d*#+\/]+)\b')) str
FROM threeload
WHERE threeload.title REGEXP '\b([\d*#+\/]+)\b';
сначала нужно перекомпилировать sqlite с помощью дополнительной функции, возможно, такой, как описанная в этом ответе:
https://stackoverflow.com/a/44586265/10890850
Вот шаги на случай, если он будет удален (не мой ответ, пожалуйста, оставьте исходный ответ любым голосом):
Sqlite по умолчанию не предоставляет функцию regex_replace. Вы
нужно загрузить его как расширение. Вот как мне удалось это сделать.
Загрузить этот C-код для расширения (icu_replace)
Скомпилируйте его, используя
gcc --shared -fPIC -I sqlite-autoconf-3071100 icu_replace.c -o icu_replace.so
А в sqlite3 запускается следующий командный пункт выше
упомянутая команда запустилась и создала файл icu_replace.so
SELECT load_extension(' path to icu_replace.so',
'sqlite3_extension_init') from dual;
После этого вы сможете использовать такую функцию как: -
select regex_replace('\bThe\b',x,'M') from dual;