Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用正则表达式检测字符串中的不同字数?_Regex_Regexp Like - Fatal编程技术网

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

Regex 如何使用正则表达式检测字符串中的不同字数?,regex,regexp-like,Regex,Regexp Like,我想检测一个字符串是否包含多个不同的单词,并想限制单词的数量。除空格外,所有类型的字符 例如:我想检查以下字符串是否不超过三个不同的单词: lorum -> True lorum ipsum -> True lorum ipsum dolor -> True lorem lorem ipsum dolor ipsum ipsum -&g

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

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

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
lorum->True
lorum ipsum->True
lorum ipsum dolor->True
lorem lorem ipsum dolor ipsum ipsum->True
lorem lorem->True
1 2 3->正确
lorem ipsum dolor sit lorum->False
lorem ipsum dolor sit->False
1 2 3 4->错误

令我大吃一惊的是,使用正则表达式实际上可以实现这一点。 这确实是丑陋和低效的,但它是有效的

不过,您可能不应该使用它:这不是适合此工作的工具

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