正则表达式跳过某些字符
Regex to skip certain characters
我想编写一个正则表达式,它会跳过像 <
和 >
这样的字符。 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<'应该会失败,但我不确定它为什么会通过匹配。我在做什么垃圾吗?
来自 Regex.IsMatch Method (String):
Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.
[^<>]
可在 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");
}
我想编写一个正则表达式,它会跳过像 <
和 >
这样的字符。 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<'应该会失败,但我不确定它为什么会通过匹配。我在做什么垃圾吗?
来自 Regex.IsMatch Method (String):
Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.
[^<>]
可在 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");
}