SQLite3で正規表現を使えないのか調べていたら、現時点ではサポートされていない事を知りました。
自分でREGEXP関数をcreate_functionなどを使って実装すればいいみたいです。
JavascriptではSQLite Managerで実装されていたのを参考にしました。
Database.prototypeにSQL関数追加をできるようにメソッドを追加
Database.prototype = { createFunction: function(fnName, argLength, fnObject) { this.connection.createFunction(fnName, argLength, fnObject); }, // etc function ...
SQL関数作成
var database = new Database('dbname'); // REGEXP Function ADD var g_RegExpString = null; var g_RegExp = null; var smDbFunctions = { regexp: { onFunctionCall: function(val) { if (g_RegExp == null || val.getString(0) != g_RegExpString) { g_RegExpString = val.getString(0); g_RegExp = new RegExp(g_RegExpString); } if (val.getString(1).match(g_RegExp)) return 1; else return 0; } } }; // インスタンスに対して関数を作成する database.createFunction("REGEXP", 2, smDbFunctions.regexp);
smDbFunctionsで作成したJavascript関数をcreateFunctionに渡すことでSQL関数を作成できるようになります。
詳しくはMDC「mozIStorageConnection - Mozilla | MDN」や「Storage | MDN」を見るとよいです。
バインドに関する事ととか他にも色々載っていました。
Ruby
Ruby,RailsからSQLiteの正規表現検索(REGEXP)を使う。 - 与太郎プログラマの日記
http://d.hatena.ne.jp/yotaropg/20070216/1171639961
PHP
携帯農薬検索実験室/研究会
http://macs.o-ya.net/cboard/c-board.cgi?cmd=one;no=700;id=bbs
いつかREGEXPは標準で対応してくれるようになって欲しいなぁ。