C# 如何使用正则表达式验证字符串?
我尝试使用一种方法来验证一个字符串,该字符串的开头有两个大写字母,后面有3个数字。我现在写的是:C# 如何使用正则表达式验证字符串?,c#,regex,string,methods,C#,Regex,String,Methods,我尝试使用一种方法来验证一个字符串,该字符串的开头有两个大写字母,后面有3个数字。我现在写的是: static void Main(string[] args) { Console.WriteLine("Enter stock quantity:"); string qty = Console.ReadLine(); string code = enterStockCode(); } static string enterStockCode() { strin
static void Main(string[] args)
{
Console.WriteLine("Enter stock quantity:");
string qty = Console.ReadLine();
string code = enterStockCode();
}
static string enterStockCode()
{
string[] pLetters = new string[] { "BL", "FS", "HJ", "PX" };
bool isValid = false;
while (isValid == false)
{
Console.WriteLine("Enter stockcode:");
string stockCode = Console.ReadLine();
char[] stockCodeSplit = stockCode.ToCharArray();
var vLetters = (stockCodeSplit[0] + stockCodeSplit[1]);
var vNumbers = (stockCodeSplit[2] + stockCodeSplit[3] + kCodeSplit[4]);
// I'd like to know if there is a better way of splitting this string
// by using regular expressions or another way.
foreach (var Letter in pLetters)
{
if (vNumbers.ToString() == Letter)
{
if (Regex.Match(vNumbers.ToString(), @"^\d[0-9]{2}$").Success)
return stockCode;
Console.WriteLine("Invalid stock code");
}
}
}
return "Invalid";
}
(另外,我想知道“2”在:
表示c使用索引0的2倍或3倍。)
非常感谢您的帮助。请尝试:
^[A-Z]{2}\d{3}
如果你只想找到一个以2个大写字母和3个数字开头的表达式,你不应该设置一个结尾限制器,而应该设置开头
2表示2次。您是否尝试过
^[A-Z]{2}\d{3}$
您是否在线查看过任何正则表达式文档和解释/示例。。?另外,请看一些Char.IsDigit函数,我认为这在我看来会更容易,或者string.Contains方法{2}
表示两次。你的代码有什么问题吗?你可以只根据^(BL | FS | HJ | PX)[0-9]{3}$
进行验证,而不用麻烦拆分等。对于“拆分字符串”(没有正则表达式),你可以使用多个.SubString()
^[A-Z]{2}\d{3}