![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
piszę prostą aplikację w ionic3 w której używam bazy sqlite, ponieważ potrzebuję użyć wyszukiwania regexp zainstalowałem plugin cordova-sqlite-evcore-extbuild-free. Wszystko było by pięknie gdyby nie dziwny problem w wyrażeniami. Przykładowy tekst "ZASŁONA wenge" i szukam w nim wyrażenia "[zZżŻźŹ][aAąĄ][śŚsS][łŁlL][oOóÓ]" czyli jest to napis "zasło" gdzie polskie znaki mogą być z ogonkami lub bez. Do tego w ionicu wyrażenia są case sensitive więc muszę podawać oba warianty. Wyszukiwarka niestety nie znajduje takiego wyrażenia, więc sprawdziłem je w php i działa, sprawdziłem w js, również działa. Trochę poszperałem w tym pluginie i znalazłem bibliotekę w c++ która dodaje tego regexpa, po drobnych przeróbkach skleciłem taki skrypt testowy Kod #include <stdlib.h> #include <string.h> #include <regex.h> #include <iostream> using namespace std; const static int regex_compile_flags = REG_EXTENDED; #define tofind "[zZżŻźŹ][aAąĄ][śŚsS][łŁlL][oOóÓ]" int main(int argc, char** argv) { regmatch_t rm[2]; regex_t re; int r; regcomp(&re, tofind, regex_compile_flags); r = regexec(&re, "ZASŁONA wenge", 2, rm, 0); if (r == 0) { printf("Match!\n"); } else { printf("NO match!\n"); } return 0; } Po uruchomieniu wyświetla "NO match!". Ale jak z wyrażenia usunę sekcję [oOóÓ] to już działa ![]() Jeśli wstawię na końcu "O" to już nie działa ![]() Może macie jakieś pomysły co tu jest nie tak lub jak to zrobić inaczej ? Dobra wiem że można dodać kolumnę bez polskich znaków i szukać zwykłym LIKE, ale może jednak dało by się inaczej ? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:30 |