【发布时间】:2019-02-21 13:04:39
【问题描述】:
我正在尝试使用正则表达式来验证用户对我正在从事的项目的输入。我目前使用的模式是
^[1-9][0-3]?|[Q|q]$ //Range of 1-13 or Q|q (Can't include 0)
根据 Regex101.com,它显示用户输入(例如 15)不匹配,但是当我运行项目时,它的行为就像匹配一样。如何限制这个正则表达式只接受 1-13 的数字范围和字符 Q 或 q?对于上下文,如果我的 while 循环出错,这里的代码也是如此。
while (!match.Success)
{
// Ommited Console.WriteLines to for clarity.
FancyArtBottom();
Console.SetCursorPosition(47, 19);
userSelection = Console.ReadLine();
match = Regex.Match(userSelection, @"^[1-9][0-3]?|[Q|q]$");
}
【问题讨论】:
-
使用
^(?:[1-9]|1[0-3]|[Qq])$ -
@WiktorStribiżew : 在正则表达式中到底做了什么?似乎无法找到它的作用。我以前见过一些人使用它。
-
这是一个非捕获组。
标签: c# regex validation filter