Gdy użyję wyrażenia abc to zostaną znalezione wiersze, które gdzieś
zawierają łańcuch "abc". I to jest łatwe.
Nie wiem jak zrobić zaprzeczenie ww. wyrażenia, tj. jak zapisać wyrażenie
aby znaleźć wiersze, które nie zawierają gdzieś w środku łańcucha "abcd".
Marek
użyć negacji warunku.
depesz
--
*-----------------------------------------------------------------*
czaderskie dywaniki do łazienki lub przed łóżko:
http://www.allegro.pl/show_user_auctions.php?uid=118670
Dzięki za szybką radę. Sądziłem, że jest możliwe zrobienia negacji w samym
wyrażeniu, np. zapis [^a] oznacza właśnie negację aly tylko i wyłącznie w
kontekście klas i gdy znak ^ jest umieszczony na 1-szej pozycji.
Nigdzie jednak nie znalazłem innego sposobu negowania w samej treści
wyrażenia. Jeśli nie uda się tego rozwiązać, to oczywiście, że nie będę miał
innego wyjścia jak zrobić to poza samą definicją wyrażania.
Dziękuję za poświęcony czas
Marek
wyrażenie1 REGEXP wyrażenie2: porównanie wzorców zbudowanych zgodnie
ze składnią wyrażeń regularnych. Uwaga: znaki \ w wartościach
napisowych MySQL mających służyć za wyrażenia regularne muszą być
podwojone (\\) aby były interpretowane według składni wyrażeń
regularnych. MySQL dopuszcza jako równoważną notację wyrażenie1 RLIKE
wyrażenie2.
pBT
Nie mogę tego wykorzystać ponieważ, moje zastosowanie wyrażeń nie ma nic
wspólnego z MySQL ani w ogóle z żadną bazą danych. Korzystam z biblioteki,
która pozwala na zastosowanie wyrażeń właściwie do wszystkiego, np. do
dowolnego stringu, wziętego z dowolnego źródła, np. kontrolki okna czy
danych dowolnie przetwarzanych, a więc w szczególnym przypadku mogą to być
dane z jakiejś bazy. Ale nie jest to częścią składową żadnej bazy. Składnia
wyrażenia jest zgodna ze składnią znaną z publikacji dot. wyrażeń.
Sądziłem, że coś przeoczyłem z opisów i że nie umiem znaleźć sposobu. Nie
mając innego pomysłu już oprogramowałem ten problem przez dodanie
możliwoście negacji warunków czyli tak jak to zaproponował Hubert.
Nie mniej jednak, dziękuję Tobie za chęć pomocy.
Marek
to czemu pytasz tutaj?????
piszesz pewnie w jakimś języku. zapytaj może na grupie o tym języku.
przeważneie jest tak że ^ oznacza opcztek wyrażenia, a jao naehację
trzeba go zastosować
[^abgh] -- wszystkie znaki prucz "abgh"
a i powinno się udać:
[^(abgh)] -- nie zawiera ciągu "abgh"
co nie zmienia faktu, że NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG
NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG
NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG
NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG
NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG
NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG NTG
Ale nie będę Cię posyłął na bocznicę
pBT
jako wyznawca reexpów proszę o nie szerzenie herezji.
> to czemu pytasz tutaj?????
> piszesz pewnie w jakimś języku. zapytaj może na grupie o tym języku.
>
> depesz
Hubercie,
Dlatego, że nt. wyrażeń wiedzą chyba najwięcej koledzy zajmujący się bazami
danych. Użycie wyrażeń nie ma żadnego związku z jakimś konkretnym językiem
programowania. W moim języku w ogóle nie ma wyrażeń regularnych, co nie ma
znaczenia, bo mogę używać dowolnych składników napisancyh w różnych
językach.
Inaczej mówiąc, wyrażenia nie są własnością czy cechą jakiegoś konkretnego
języka programowania. Składnia wyrażeń jest mniej lub bardziej zgodna z
ogólną ich definicją znaną powszechnie.
Bez wątpienia wyrażenia są używane w wielu systemach baz danych, o czy czym
świadczą niektóre odpowiedzi, więc moje pytanie zbytnio się nie oddala od
tematyki grupy jeśli jednak czujesz dyskomfort i irytację spowodowaną
zadaniem mojego pytania, proszę Cię o wybaczenie.
Marek