2016-08-10 27 views
0

我試圖刪除redis中的行,我首先搜索鍵以確保我的表達是正確的。這不是sess:開始如何使用正則表達式在redis中刪除密鑰與express列表不匹配?

keys sess:* //I get return as I expect 

獲取密鑰:與sess:開始

獲取密鑰

keys ^(sess:)* //I get empty list, not as expect 
keys [^sess:]* //I get list that not start with s or e or :, not as expect 

得到密鑰不sess:啓動和brand:

keys [^(sess:|brand:)]* //I get list that not start with s or e or : or b and so on, not as expect 

莫非任何人都可以幫我列出我的名單我沒有得到正確的回報,因爲我期望?

回答

0

如果你指的keys命令here的文檔,你會發現,參數

支持通配符式樣的模式:H LLO匹配你好,你好和hxllo H * LLO hllo匹配和heeeello h [ae] llo匹配hello和hallo,但是 不是hillo h [^ e] llo匹配hallo,hbllo,...但不是你好h [ab] llo 匹配hallo和hbllo如果你使用\來轉義特殊字符想要 逐字匹配他們。

因此正則表達式不支持

,如文檔中提到:

如果你正在尋找一種方式來找到你的密鑰空間的一個子集密鑰,可以考慮使用掃描或套

Link to glob-style patterns here

+0

所以實際上不含有字符的作品,但不包含字符串將無法正常工作?無論如何,我嘗試過'鍵* [^:] *'但它並沒有像期望的那樣回報。 – c2340878

+0

你想得到什麼?所有包含「^」或「:」的鍵? – eyossi

+0

我想讓所有不包含「sess:」和「brand:」的密鑰。如果我理解你的回答是正確的,那麼這是不可能的?所以我認爲我可以做到不包含':',但它不能像我期望的那樣工作。 – c2340878

相關問題