如何使用正则表达式检测字符串中不同单词的数量?

How to detect the number of distinct words in a string with Regex?

我想检测一个字符串是否包含多个不同的单词,并且想限制单词的数量。单词各种字符,空格除外。

例如:我想检查以下字符串是否不超过三个不同的词:

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

令我惊讶的是,这实际上可以通过正则表达式实现。 这确实很丑陋且效率低下,但它确实有效。

不过你可能不应该使用它:这不是完成这项工作的正确工具。

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

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