(?i)^Q(?=.*[0-9])(?=.*[a-z-[q]]+[^Q]$)[a-z0-9]{7}$
• (?i)
Поиск без учета регистра
• ^Q
Строка начинается с Q
• (?=.*[0-9])
Строка подтверждения содержит числа
• (?=.*[a-z-[q]]+[^Q]$)
Строка подтверждения содержит буквы, кроме Q
и не заканчивается Q
.
• [a-z0-9]{7}
Осталось 7 буквенно-цифровых символов
• $
Конец строки
C # код:
var texts = new List<string>
{
"QC1589ZH",
"Q1234567",
"Q12FQ457",
"Q123F56Q",
"QUANTITY"
};
foreach (string text in texts)
{
var pattern = @"(?i)^Q(?=.*[0-9])(?=.*[a-z-[q]]+[^Q]$)[a-z0-9]{7}$";
WriteLine($"Text: {text}, Is match: {Regex.IsMatch(text, pattern)}");
}
/*
Output:
Text: QC1589ZH, Is match: True
Text: Q1234567, Is match: False
Text: Q12FQ457, Is match: False
Text: Q123F56Q, Is match: False
Text: QUANTITY, Is match: False
*/