我试图在运行时使用边界\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
条件为真,因为我传递的模式是直接匹配的。但是当我尝试传递模式以匹配第二个条件时,它将是错误的。我试图在控制台中编写绑定变量,但它也不会在控制台中打印任何值。有人可以给我一个解决方案吗?
答案 0 :(得分:1)
你的第一个正则表达式有一个黑色斜杠,后跟字母b,因为@
。第二个具有代表退格的字符。只需将@
放在前面
string bound = @"\b";