2015-12-04 4 views
2

Как написать регулярное выражение для проверки, является ли введенное значение пробелом или пустым или цифрами. Во всех остальных случаях он вернет false. Я попробовал \s*|\d+, который также допускает значения символов.regex позволяет использовать символ при использовании s

+0

Пожалуйста, добавьте ваш язык или тег инструмента в вопрос. –

ответ

3

Ваше регулярное выражение \s*|\d+ просто соответствует 0 или более пробелов или 1 или более цифр в любом месте внутри входной строки и может содержать пробелы смешан с цифрами и другими символами.

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

^(?:\s+|\d+)?$ 

См demo

регулярное выражение матча:

  • ^ - начало строки
  • (?:\s+|\d+)? - 1 или 0 вхождений (из-за до (?:...)?) из ...
    • \s+ - 1 или более пробельных символов или
    • \d+ - 1 или более цифр
  • $ - конец строки

В равнинных человеческих слов ,

  • ^....$ - убедитесь, что нам требуется полное совпадение строки, любые частичные совпадения внутри строки не допускаются
  • (?:...)? - все текстов совпадающих с подмасками внутри этой группы необязательно, таким образом, позволяя матч пустой строки (т.е. return true, если строка пуста).
Смежные вопросы