正则表达式使用边界传递动态值

时间:2015-06-22 15:23:37

标签: c# regex string boundary

我试图在运行时使用边界\b将动态值传递给Regex函数。 我的代码是:

 static void Main(string[] args)
        {
            string sent = "Accelerometer, gyro, proximity, compass, barometer, gesture, heart rate";

            string match = "gyro";
            string bound = @"\b";

            if (Regex.IsMatch(sent, @"\bgyro", RegexOptions.IgnoreCase))
            {
                Console.WriteLine("match is in the sentence");
            }
            else if (Regex.IsMatch(sent, bound+match, RegexOptions.IgnoreCase))
            {
                Console.WriteLine("match is in the sentence");
            }

            Console.WriteLine(bound+match); outputs \bgyro
            Console.ReadLine();
        } 

首先if条件为真,因为我传递的模式是直接匹配的。但是当我尝试传递模式以匹配第二个条件时,它将是错误的。我试图在控制台中编写绑定变量,但它也不会在控制台中打印任何值。有人可以给我一个解决方案吗?

1 个答案:

答案 0 :(得分:1)

你的第一个正则表达式有一个黑色斜杠,后跟字母b,因为@。第二个具有代表退格的字符。只需将@放在前面

string bound = @"\b";