|
OBECNI NA TPC |
|
|
» PeKa 06:38 » cVas 06:33 » NimnuL 06:15 » NWN 05:07 » Shark20 02:49
Dzisiaj przeczytano 41104 postów, wczoraj 25974
Szybkie ładowanie jest: włączone.
|
|
|
|
|
|
TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Postgres i regexp , AwerS 17/01/08 12:55 Witam mam problem z regexp'ami.
Przykładowe dane :
descr
"Build 2865 -O5 - BS54"
"Build 2865 - off_dbg - BS55"
"Build 2865 - trace - BS55"
"Build 2865 - off - BS55"
Do wyświetlenia tych wszystkich jest oki i sql wygląda:
select * from tabela where descr ~'Build \d*'
problem zaczyna sie przy wyszukaniu szczegółowemu:
"Build 2865 -O5 - BS54"
select * from tabela where descr ~'Build \d*'
zwraca wyniki i
select * from queue where descr ~'Build 2865 -O5 - BS\d*'
tez potrafi wyszukać wynik ale jeżeli zastąpię 2865 \d to wszystko
przestaje działa i nie mam bladego pojęcia :(
select * from tabela where descr ~'Build \d* -O5 - BS\d*'
Byłbym wdzięczny za sugestie.AwerS - nie próbujesz za bardzo przekombinować? , john565 17/01/08 13:11
AFAIR w SQL 2000 po WHERE można było zastosowac klauzule LIKE, znaki wieloznaczności zastępował tam procent, a definiowanie wzoru dla danych jakie nas interesuja bylo o wiele mniej skomplikowanie od REGeX-a.
Więc poszukaj może jest odpowiednik LIKE tak samo lub inaczej się nazywający w postgresie i rozwiąże on twoje problemyf*ck - Like , AwerS 17/01/08 14:05
nie spełnia moich oczekiwań dlatego korzystam z regexp'ow i są one mi potrzebne.AwerS
- spróbuj , kicior 17/01/08 14:33
'Build [[:digit:]]* -O5 - BS[[:digit:]]*'
albo
'Build [0-9]* -O5 - BS[0-9]*'- wielkie , AwerS 17/01/08 15:34
dzieki ale to nie wyjasnie dlaczego sposoby z \ nie dziala a w dokumentacji 9.16 niby sie da
Escape Description
\d [[:digit:]]
\s [[:space:]]
\w [[:alnum:]_] (note underscore is included)
\D [^[:digit:]]
\S [^[:space:]]
\W [^[:alnum:]_] (note underscore is included)AwerS - nie mam postgresa pod ręką żeby sprawdzić , kicior 17/01/08 16:13
a grep mi nie wyłapuje sekwencji \d, ale może o to chodzi:
Note: Keep in mind that an escape's leading \ will need to be doubled when entering the pattern as an SQL string constant. For example:
'123' ~ E'^\\d{3}' true
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|