Я думаю, что вам не хватает, как {}
используются, чтобы соответствовать двум словам
preg_match_all('/([a-z]+)/i', 'one two', $match);
if($match && count($match[1]) > 1){
....
}
Матч
array (
0 =>
array (
0 => 'one',
1 => 'two',
),
1 =>
array (
0 => 'one',
1 => 'two',
),
)
Match будет иметь все матчи картины, так то его тривиальным просто посчитать их ...
При использовании
preg_match('/(\w+){2,}/', 'one two', $match);
Match is
array (
0 => 'one',
1 => 'e',
)
явно не то, что вы хотите.
Единственный способ я вижу preg_match
с этой /([a-z]+\s+[a-z]+)/
preg_match ([a-z']+\b){2,}
http://www.phpliveregex.com/p/frM
preg_match ([a-z]+\s+[a-z]+)
http://www.phpliveregex.com/p/frO
РЕКОМЕНДУЕМЫЙ
preg_match_all ([a-z]+)
http://www.phpliveregex.com/p/frR (возможно, придется выбрать preg_match_all на сайте)
попробуйте preg_match_all, вместо этого. И бросить '{2,}' – ArtisticPhoenix
@ArtisiticPhoenix. Мне на самом деле не нужен сопоставление $, мне просто нужно использовать preg_match в выражении if, поэтому я не уверен, что бы изменила preg_match_all. – frosty
Тогда почему вы соответствуете словам? когда вы должны подсчитывать пробелы. – ArtisticPhoenix