2011-07-01 18 views
6

Próbuję pobrać wpisy z SQLiteDatabase w programie Android przy użyciu funkcji query przy użyciu parametru wyboru. Odniosłem sukces dzięki prostemu dopasowywaniu wzorców, używając SQLite's LIKE i% wildcard. Teraz chcę wykonać bardziej złożone porównywanie wzorców za pomocą wyrażeń regularnych.Pytanie SQLiteDatabase systemu Android przy użyciu Regex

Zgodnie z SQLite website, aby operator REGEXP mógł działać, musi być zdefiniowany przez użytkownika. Czy ktoś miał jakieś sukcesy w tworzeniu zdefiniowanych funkcji SQLite dla SQLiteDatabase systemu Android? Czy ktoś znalazł inny sposób korzystania z wyrażeń regularnych podczas wyszukiwania ciągów w bazie danych?

+0

Wyobrażam sobie, że uzyskanie SQLite w celu korzystania z funkcji zdefiniowanych przez użytkownika w systemie Android byłoby trudne, chociaż wydaje mi się, że jest to możliwe, gdy NDK – antlersoft

Odpowiedz

1

Jak opisano here

Operator REGEXP jest szczególnym składni tego wyrażenia() Działanie użytkownika. Żadna funkcja użytkownika regexp() nie jest zdefiniowana domyślnie, więc użycie operatora REGEXP spowoduje zwykle pojawienie się komunikatu o błędzie. Jeśli w czasie wykonywania zostanie dodana funkcja SQL zdefiniowana przez aplikację o nazwie "regexp", funkcja ta zostanie wywołana w celu implementacji operatora REGEXP.

Ale istnieje GLOB, który jest trochę bardziej zaawansowany niż LIKE.

+0

GLOB wygląda obiecująco, oddam to później. Dzięki! – gelakinetic

Powiązane problemy