【環境】
CentOS 7
CentOS 7 の SQLite(標準パッケージ)単体では、正規表現を使えない。
以下からモジュールのソースを入手して、.so ライブラリをロードすれば使えるようになる。
https://github.com/ralight/sqlite3-pcre
ビルド
ビルドには、sqlite-devel パッケージが必要。
$ make cc -shared -o pcre.so -fPIC -W -Werror pcre.c -lpcre -Wl,-z,defs
使い方
ライブラリのロード
sqlite> .load /path-to/pcre.so
※毎回設定するのが面倒な場合は、~/.sqliterc にロードの記述をする。
sqlite> ... WHERE x REGEXP <regex>
試す
テストデータを用意。
sqlite> select * FROM sample; os -------------------- Mac OS X 10.9 Mac OS X 10.10 Mac OS X 10.11 Mac OS X 10.12 Mac OS X 10.13 Windows NT 6.3 Windows NT 10.0
ライブラリをロードする。
sqlite> .load ./pcre.so
正規表現でSELECTする。
sqlite> select * FROM sample WHERE os REGEXP '[0-9]\.[0-9]$'; os -------------------- Mac OS X 10.9 Windows NT 6.3 Windows NT 10.0