^(?!\s*$).+
будет соответствовать любой строке, которая содержит хотя бы один непробельный символ.
So
if (Regex.IsMatch(subjectString, @"^(?!\s*$).+")) {
// Successful match
} else {
// Match attempt failed
}
должен сделать это для вас.
^
привязывает поиск в начале строки.
(?!\s*$)
, так называемый отрицательный взгляд, утверждает, что невозможно сопоставить только пробельные символы до конца строки.
.+
тогда действительно сделает матч. Он будет соответствовать чему угодно (кроме новой строки) до конца строки. Если вы хотите разрешить переводы строки, вам нужно установить опцию RegexOptions.Singleline
.
Осталось от предыдущей версии вашего вопроса:
^\s*$
соответствует строкам, которые содержат только пробелы (или являются пустыми).
С точностью до наоборот:
^\S+$
соответствует только строкам, которые состоят только из непробельных символов, минимум из одного символа.