正则表达式传递带边界的动态值
Regex pass dynamic values with boundry
我试图在运行时将具有边界 \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
条件将为真,因为我正在传递要直接匹配的模式。但是当我试图将要匹配的模式传递给第二个条件时,它将是错误的。我试图在控制台中写入绑定变量,但它也不会在控制台中打印任何值。有人可以给我一个解决方案吗?
因为 @
,您的第一个正则表达式有一个黑色斜杠后跟字母 b。第二个具有代表退格的字符。就在前面放一个@
string bound = @"\b";
我试图在运行时将具有边界 \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
条件将为真,因为我正在传递要直接匹配的模式。但是当我试图将要匹配的模式传递给第二个条件时,它将是错误的。我试图在控制台中写入绑定变量,但它也不会在控制台中打印任何值。有人可以给我一个解决方案吗?
因为 @
,您的第一个正则表达式有一个黑色斜杠后跟字母 b。第二个具有代表退格的字符。就在前面放一个@
string bound = @"\b";