Haskellデータベース接続でregex()
SQLite関数の実装を作成して、 "REGEX"演算子をクエリ。HaskellでRegexp()SQLite関数を挿入する(Database.SQLite3、 "direct-sqlite")
さて、私はPCREを使用する正規表現マッチング機能の実装があります、
import Text.Regex.Base.RegexLike
import qualified Text.Regex.PCRE.ByteString as PCRE
import qualified Data.ByteString as BS
sqlRegex :: BS.ByteString -> BS.ByteString -> IO Bool
sqlRegex reg b = do
reC <- pcreCompile reg
re <- case reC of
(Right r) -> return r
reE <- PCRE.execute re b
case reE of
(Right (Just _)) -> return True
(Right (Nothing)) -> return False
where pcreCompile = PCRE.compile defaultCompOpt defaultExecOpt
今
> sqlRegex (Data.ByteString.Char8.pack ".*") (Data.ByteString.Char8.pack "hello")
True
> sqlRegex (Data.ByteString.Char8.pack "H.*") (Data.ByteString.Char8.pack "hello")
False
(非常に明示的な呼び出しを言い訳してください)だけでなくどのように動作するか私が作成できますかSQLite関数?? createFunction
ため
conn <- open $ pack dbFile
createFunction conn "regexp" (Just 2) True [..... and what should go here?]
docsは限り私は関数はコンテキストおよびいくつかの引数を取るようにする必要がありますが、それらのデータの参照文献はすべてで私を助けていないことを理解することなど私に役立ちます!
私の機能をどのようにしてFuncContext
とFuncArgs
にする必要がありますか?
素晴らしいです!非常に役立ちます!ありがとう! –