如果我放在单词边界\ b中,以'@'开头的单词就不匹配

时间:2013-12-18 10:37:03

标签: regex c#-4.0

我在c#console app中使用Regex。 我在我的字符串中以'@'开头的单词,我正在使用Regex来匹配那些,但这似乎不起作用。 这是我的代码

public static void regularExpression()
    {
        string[] sentences = 
        {
            "@TODAY is 18 Dec",
            "@TODAY_CAL is 18 Dex",
            "@YESTERDAY was 17 dec",
            "@YESTERDAY_CAL was 17 Dec"
        };

        string sPattern = @"\b@TODAY\b";

        foreach (string s in sentences)
        {
            System.Console.Write("{0,24}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                System.Console.WriteLine("  (match for '{0}' found)", sPattern);
            }
            else
            {
                System.Console.WriteLine();
            }
        }

    }

@TODAY不匹配。如果我用

替换sPattern
string sPattern = @"@TODAY";

它有效。但在这种情况下它甚至匹配@TODAY_CAL,这正是我想要避免的。 我想要确切的词来匹配。

任何建议???

1 个答案:

答案 0 :(得分:1)

试试这个:

string sPattern = @"@TODAY\b";