В настоящее время я использую следующее регулярное выражение:
^[a-zA-Z]{0,}(\\*?)?[a-zA-Z0-9]{0,}
чтобы проверить строку, начинающуюся с буквенного символа и заканчивающуюся буквенно-цифровыми символами и имеющую звездочку (*) в любом месте строки, но не более одного раза. Проблема здесь в том, что если заданная строка все еще проходит, если она начинается с числа, но не имеет *, что должно привести к ошибке. Как я могу переделать регулярное выражение, чтобы потерпеть неудачу в этом случае?
отл.
TE - pass
*TE - pass
TE* - pass
T*E - pass
*9TE - pass
*TE* - fail (multiple asterisk)
9E - fail (starts with number)
EDIT:
Извините за позднее редактирование, но я также должен убедиться, что строка содержит 8 символов или меньше, могу ли я включить это в регулярное выражение? Или я должен просто проверить длину строки после проверки регулярного выражения?