SQLite は標準で REGEXP 関数をサポートしておらず正規表現での検索ができません。ただし、Run-Time Loadable Extensions - SQLite にあるように実行時に自作の SQL 関数を読み込むことができます
この機能を使用して EPGStation で SQLite3 使用時でも正規表現を使えるようにする手順を紹介します
SQLite Download Page から sqlite-amalgamation-*.zip
と sqlite-src-*.zip
をダウンロードし、適当な場所に解凍する
sqlite-src-*/ext/misc/regexp.c
を sqlite-amalgamation-*
へコピーする
sqlite-amalgamation-*
へ移動し以下のコマンドを実行する
- Linux の場合
gcc -g -fPIC -shared regexp.c -o regexp.so
- macOS の場合
gcc -g -fPIC -dynamiclib regexp.c -o regexp.dylib
- Windows (64bit) の場合
スタートメニュー -> Visual C++ Build Tools -> Visual C++ 2015 x64 Native Build Tools Command Prompt を開き sqlite-amalgamation-*
へ移動し以下のコマンドを実行する
cl regexp.c -link -dll -out:regexp.dll
生成された regexp.so (Linux), regexp.dylib (macOS), regexp.dll (Windows) を適当な場所へ配置する
config.json に以下の項目を追加します。
"sqlite3": {
"extensions": [
"/hoge/regexp.so"
],
"regexp": true
},
Windows でのファイルパス指定は
C:\\hoge\\regexp.dll
ではなく
C:/hoge/regexp.dll
となるので注意しましょう
EPGStation を再起動したら完了です