2

次のようにsqlite3クエリを使用したい:

select * from Log where Desc glob '*[ _.,:;!?-(){}[]<>''"]OK';

のように、OK で終わるレコードを検索するには
OK
asdasda _OK
asda (OK
dasda [OK
dasda ]OK

しかし、クエリでバックブラケットを使用すると、これは失敗します...glob '*[ []]OK';

助言がありますか?

4

1 に答える 1

4

ソース コードに隠されたコメントには、次のように書かれています。

グロビングのルール:

* 0 個以上の文字の任意のシーケンスに一致します。

? 正確に 1 文字に一致します。

[...] 囲まれた文字リストの 1 文字に一致します。

[^...] 囲まれたリストにない 1 文字に一致します。

[...]and[^...]マッチングを使用すると、 or]の後の最初の文字にすることで、文字をリストに含めることができます。を使用して文字の範囲を指定できます。例: 任意の 1 つの小文字に一致します。に一致させるには、リストの最後の文字にします。[^-[a-z]-

したがって、あなたの記録は で見つけることができます... glob '*[] _.,:;!?(){}[<>''"-]OK'

于 2012-10-17T13:37:16.590 に答える