Ответ 1
Как насчет:
^[^\*]
Соответствует любому входу, который не начинается со звездочки; судя из примера regex, любой вход, который не соответствует регулярному выражению, будет причиной ошибки проверки, поэтому с двойным отрицательным результатом вы должны получить нужное поведение: -)
Объяснение моего регулярного выражения:
- Первый
^
означает "в начале строки" - Конструкция
[
...]
- это класс символов, который соответствует одному символу среди тех, которые заключены в скобки -
^
в начале символьного класса означает "отрицать класс символов", т.е. сопоставлять любой символ, который не является одним из перечисленных -
\*
означает литерал*
;*
имеет особое значение в регулярных выражениях, поэтому я избежал его с обратной косой чертой. Как заметил Роб в комментариях, не обязательно обязательно избегать (большинство) специальных символов в классе символов