2014-11-05 1 views
4

와일드 카드 또는 정규식을 사용하여 HttpContext.Cache에서 항목을 검색 및 제거하는 방법이 있습니까?HttpContext.Cache에서 검색 할 때 와일드 카드 사용

"item_1", ​​"item_2", ..., "item_n"캐시에있을 수 있으며 "item_ *"패턴의 키와 관련된 모든 값을 캐시에서 제거하고 싶습니다. 해당 항목이 있는지 확인한 후이를 제거하고 제거하는 방법은 무엇입니까?

예 :

대신 :

HttpContext.Current.Cache.Remove("item_1") 
HttpContext.Current.Cache.Remove("item_2") 
HttpContext.Current.Cache.Remove("item_3") 

내가 좋아하는 뭔가를 원하는 :

HttpContext.Current.Cache.Remove("item_*") 
+0

후 일부 입력, 예상 출력은 – vks

+0

당신이 할 수 가능성이 루프 모든 키 : 시도한 다음()'string.StartsWith'와 검사를 수행하고 기준과 일치하는 항목을 제거합니다. – scheien

+0

@vks 최근 편집 내역을 봅니다. –

답변

2

을 당신은 할 수 루프 같은 항목 :

foreach(var key in HttpContext.Current.Cache) 
{ 
    if (key.StartsWith("item_")) 
    { 
     // remove the corresponding item here. 
    } 
} 

기본 샘플 , 그리고 약간의 조정이 필요합니다. 귀하의 구현과 일치합니다.

AFAIK 특정 키가 필요하므로 와일드 카드를 기반으로 항목을 제거 할 수 없습니다.

0
^HttpContext\.Current\.Cache\.Remove\("item_.*?"\)$ 

당신은 empty string .See 데모와 this.Replace을 시도 할 수 있습니다 (나에게 잘못을 증명하십시오).

http://regex101.com/r/sU3fA2/65