//--------------------------------------
void
sqlREGEXP(sqlite3_context* ctx, int argc, sqlite3_value** argv)
{
assert(argc == 2);
std::string pattern((const char*)sqlite3_value_text(argv[0]));
std::string str((const char*)sqlite3_value_text(argv[1]));
std::smatch match;
sqlite3_result_int(ctx, std::regex_search(str, match, std::regex(pattern))? 1: 0);
}
//--------------------------------------
class SQLiteDB
{
...
private:
sqlite3* m_db;
...
};
//--------------------------------------
void
SQLiteDB::open(const std::string& strDBName)
{
if (sqlite3_open(strDBName.c_str(), &m_db) == SQLITE_OK)
{
if (sqlite3_create_function(m_db, "REGEXP", 2, SQLITE_UTF8, NULL, &sqlREGEXP, NULL, NULL) == SQLITE_OK)
{
SQLiteDB::debug_out("REG
}
}
}
- c++ реализация REGEXP для SQLite3 и std::
----------------------- ----------------------- ----------------------- EXP created successfully.");
LJ Video
;( Оставить комментарий )