正则表达式跳过某些字符

时间:2015-01-05 12:09:18

标签: c# regex

我想编写一个可以跳过<&amp;等字符的正则表达式。 >Reason

现在,为了表示这一点,我遇到了this [^<>]并尝试在控制台应用程序中使用它,但它不起作用。

[^<>]

Regular expression visualization

Debuggex Demo

string value = "shubh<";
string regEx = "[^<>]";
Regex rx = new Regex(regEx);

if (rx.IsMatch(value))
{
    Console.WriteLine("Pass");
}
else { Console.WriteLine("Fail"); }
Console.ReadLine();

字符串'shubh&lt;'应该失败,但我不确定为什么它会通过比赛。我在做垃圾吗?

1 个答案:

答案 0 :(得分:3)

来自Regex.IsMatch Method (String)

  

指示Regex构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项。

[^<>]shubh<s等)中找到

h

您需要使用^$锚:

Regex rx = new Regex("^[^<>]*$");
if (rx.IsMatch(value)) {
    Console.WriteLine("Pass");
} else {
    Console.WriteLine("Fail");
}

另一种解决方案是检查是否包含<>

Regex rx = new Regex("[<>]");
if (rx.IsMatch(value)) {
    Console.WriteLine("Fail");
} else {
    Console.WriteLine("Pass");
}