我正在练习使用正则表达式来确保用户的输入符合所需的检查并编写了代码的这一部分:
Regex rgx2 = new Regex("^([A-Za-z0-9])(a{3,6})$");
bool isTrueA = false;
do{
Console.WriteLine("Please enter a word with 3 as in it: ");
string p = Console.ReadLine();
if(rgx2.IsMatch(p))
{
Console.WriteLine("Valid a word:");
isTrueA = true;
}
else
{
Console.WriteLine("Your word is not valid");
isTrueA = false;
}
}while(isTrueA == false);
那么代码应该做的是确保用户可以输入带有大写和小写字母以及数字的单词,但是它们也必须包含3'a'。
然而,这不起作用,我不确定我做错了什么。
答案 0 :(得分:0)
如果你想使用单一的正则表达式模式,这就是我要采用的方法,使用正向前瞻来断言至少有三个a
s或A
s:
^(?=(?:.*[Aa].*){3,})[A-Za-z0-9]*$
行动中:https://regex101.com/r/aStQ7L/1
如果您还需要允许空格,只需在末尾为字符集添加空格:
^(?=(?:.*[Aa].*){3,})[A-Za-z0-9 ]*$