簡體   English   中英

正則表達式是緩存模式鍵的匹配

[英]Regex isMatch for cache pattern key

我為緩存擴展編寫了測試。 我想通過模式從緩存中刪除。

a)在此示例中,測試失敗

 [Test]
    public void Should_found_by_pattern()
    {
        string pattern = "shouldFoundThis-{0}-{1}-{2}";
        var regex = new Regex(pattern, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.IgnoreCase);
        var keysToRemove = new List<String>();

        var list = new List<string>()
        {
            "shouldFoundThis-15-2-7"
        };

        foreach (var item in list)
            if (regex.IsMatch(item))
                keysToRemove.Add(item);

        keysToRemove.Any().ShouldBeTrue();
    }

b)在此示例中,測試通過

 [Test]
    public void Should_found_by_pattern()
    {
        string pattern = "shouldFoundThis-{0}-{1}";
        var regex = new Regex(pattern, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.IgnoreCase);
        var keysToRemove = new List<String>();

        var list = new List<string>()
        {
            "shouldFoundThis-15-2"
        };

        foreach (var item in list)
            if (regex.IsMatch(item))
                keysToRemove.Add(item);

        keysToRemove.Any().ShouldBeTrue();
    }

為什么Regex IsMatch與模式“shouldFoundThis- {0} - {1} - {3}”不匹配,但匹配模式“shouldFoundThis- {0} - {1}”

regex shouldFoundThis-{0}-{1}-{2}與正則表達式shouldFoundThis---相同shouldFoundThis---並且在主題字符串中沒有順序找到三個破折號。

相比之下, shouldFoundThis-{0}-{1}shouldFoundThis-相同shouldFoundThis-{0}-{1} 可以在你的字符串中找到。

在正則表達式中, x{n}表示“ n次重復x ”。 在這里閱讀有關量詞的更多信息

你可能意味着像

string pattern = @"shouldFoundThis-\d+-\d+-\d+";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM