Разрешены ли пробелы в начале вашей строки?
Если это так, то должно сработать что-то подобное:
^$|.*\S+.*
В противном случае это должно сработать:
^$|^\S+.*
Объяснение:
Я объясню версию без начальных пробелов, потому что другая является лишь слегка расширенной версией.
Сначала мы проверим,Строка пуста с ^$
.Это объясняется в другом вопросе здесь Регулярное выражение, которое соответствует шаблону или представляет собой пустую строку .
^
отмечает начало строки, которую мы хотим проверить на совпадение.
\S+
проверяет наличие непробельных символов.+
гарантирует, что должен быть хотя бы один или несколько из них.Это включает пробелы, символы табуляции, новые строки и т. Д.
.*
соответствует любым символам (обозначается точкой) и любому их количеству или не имеет (обозначается *).
Все это предполагает, что вам нужно соответствовать всей строке.Если это не так, вы можете сократить выражение до:
^$|\S+
или
^$|^\S+
Если пользовательский ввод имеет совпадения для первого выражения, то вы будете знать,введенная им строка содержит символы, которые не являются пробелами или являются пустыми.Если оно совпадает со вторым выражением, вы дополнительно знаете, что оно начинается с непробельных символов.
Эти выражения, конечно, являются лишь двумя из множества возможных выражений.Я выбрал их, потому что их легко читать и объяснять (по крайней мере, на мой взгляд).