Вы можете сделать:
^(?=.)[A-Za-z\d]*\*?[A-Za-z\d]*$
Это будет соответствовать любой строке длиной не менее одного символа ((?=.)
), начинающейся с нуля или более буквенно-цифровых символов, содержащей необязательный *
, изаканчивается нулем или более буквенно-цифровыми символами.
Вы также можете заменить [A-Za-z\d]
на [^\W_]
, чтобы сделать его немного короче (но немного сложнее для чтения):
^(?=.)[^\W_]*\*?[^\W_]*$