2016-01-28 2 views
4

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

Input1: stack over flow => the regex will not match anything

Input2: stack over flow stack over => the regex will match this string

Я попытался подсчета пробелов с /\/s/ но это не очень помогло мне, потому что мне нужно, чтобы соответствовать только строки с не слов> 5

Также я не хотите использовать split пробелами.

ответ

3

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

^\s*\S+(?:\s+\S+){4,}\s*$ 

См demo

Объяснение:

  • ^ - начало строки
  • \s* - опционально любое количество пробельных символов
  • \S+ - один или несколько непробельных символы
  • (?:\s+\S+){4,} - 4 или более последовательностей одного или более пробельных символов с последующим одним или более непробельных символов
  • \s* - ноль или более (необязательные) конечные пробельные символы
  • $ - конец строки
Смежные вопросы