Как определить количество отдельных слов в строке с помощью Regex? - PullRequest
0 голосов
/ 26 июня 2018

Я хотел бы определить, содержит ли строка несколько разных слов и ограничить количество слов. Слова всевозможные символы, кроме пробелов.

Например: я хочу проверить, есть ли в следующих строках не более трех разных слов:

lorum                               -> True
lorum ipsum                         -> True
lorum ipsum dolor                   -> True
lorem lorem ipsum dolor ipsum ipsum -> True
lorem lorem <=>                     -> True
1 2 3                               -> True

lorem ipsum dolor sit lorum         -> False
lorem ipsum dolor sit               -> False
1 2 3 4                             -> False

1 Ответ

0 голосов
/ 26 июня 2018

К моему великому удивлению, это действительно достижимо с помощью регулярных выражений. Это действительно уродливо и неэффективно, но работает.

Вы, вероятно, не должны использовать его, хотя: это не правильный инструмент для этой работы.

/^(\S*)(?: \1)*(?:(?: (\S*))(?: \1| \2)*(?: (\S*))?)?(?: \1| \2| \3)*$/gm

https://regex101.com/r/0cgoFF/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...