如何使用正则表达式来验证我的字符串?
How do I use regex to validate my string?
我正在尝试使用一种方法来验证一个字符串,该字符串的开头有两个大写字母,后面有 3 个数字。我现在正在写的是:
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"是否在:
@"^\d[0-9]{2}$"
表示 2 次或 3 次,因为 c# 使用索引 0。)
感谢任何帮助。
请尝试:
^[A-Z]{2}\d{3}
如果您只想查找以 2 个大写字母后跟 3 个数字开头的表达式,则不应放置结尾限制符,而应放置开头。
2表示2次
我正在尝试使用一种方法来验证一个字符串,该字符串的开头有两个大写字母,后面有 3 个数字。我现在正在写的是:
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"是否在:
@"^\d[0-9]{2}$"
表示 2 次或 3 次,因为 c# 使用索引 0。)
感谢任何帮助。
请尝试:
^[A-Z]{2}\d{3}
如果您只想查找以 2 个大写字母后跟 3 个数字开头的表达式,则不应放置结尾限制符,而应放置开头。
2表示2次