我想编写一个可以跳过<
&amp;等字符的正则表达式。 >
。 Reason
现在,为了表示这一点,我遇到了this [^<>]
并尝试在控制台应用程序中使用它,但它不起作用。
[^<>]
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;'应该失败,但我不确定为什么它会通过比赛。我在做垃圾吗?
答案 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");
}