如何使用正则表达式检测字符串中不同单词的数量?
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
我想检测一个字符串是否包含多个不同的单词,并且想限制单词的数量。单词各种字符,空格除外。
例如:我想检查以下字符串是否不超过三个不同的词:
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