2013-07-21 2 views
2

Я пишу программу на C#, которая должна проверять входную строку, чтобы убедиться, что она не начинается с пробела, t содержит пробел и не заканчивается пробелом.Регулярное выражение не начинается с, содержит или заканчивается пробелом, а не пустой строкой

настоящее время я использую следующее регулярное выражение:

^[\S]*$ 

Это прекрасно работает на всех строк, за исключением, если строка пуста:

"HELLO" (Match) 
"H" (Match) 
"HE LLO" (No Match) 
" HELLO" (No Match) 
"HELLO " (No Match) 
"" (Match) 

Как вы можете увидеть пустую строку «» возвращает матч, который не то, что я хочу.

Как изменить мое регулярное выражение, чтобы убедиться, что строка не пуста?

спасибо.

+0

возможно plus [\ S] + – vladkras

+0

Yup, что сработало спасибо! –

ответ

2

Просто замените квантор с нулевым или большим числом (*) с помощью одного или более квантора (+). Кроме того, нет необходимости обертывать \S в классе символов. Попробуйте это:

^\S+$ 

Дополнительная литература:

+0

Ничего себе, это было легко! Благодаря! –

0

Это немного легче просто проверить на наличие

\s 

где-нибудь ...

+0

Вам все равно придется проверять длину строки. Пустая строка не содержит '\ s' в любом месте. –

Смежные вопросы