как поделить предложение из набора любых слов, например "раз два три четы пять" на словосочетания -> раз два два три три четыре четыре пять /(?=( [\s|"]* [^\s]+ [\s]+ [^\s]+ [\s|$]+))/xi и /( [\s|"]* [^\s]+ [\s]+ [^\s]+ [\s|$]+)/xi не получаеться
PHP: <?php $string = "раз два три четы пять"; // $words = explode(' ', $string); $words = preg_split('/[\s,]+/', $string); $phrases = array(); for($i=1, $c=count($words); $i<$c; $i++) { $phrases[] = $words[$i-1] . " " . $words; } Иногда лучше взять несколько строковых функций, чем одно мощное регулярное выражение
PHP: <? $string = "one two three four five"; $words = explode(" ", $string); //preg_split("/[\s,_|]+/", $string); for ($i=0; $i<count($words); $i=$i+2){ if (isset($words[$i]) && isset($words[$i+1])){ $phrases[] = $words[$i]." ".$words[$i+1]; } else if (isset($words[$i])){ $phrases[] = $words[$i]; } } print_r($phrases); ?>
PHP: <? $string = "раз два три четы пять"; // $words = explode(' ', $string); $words = preg_split('/[\s,]+/', $string); $phrases = array(); for($i=1, $c=count($words); $i<$c; $i++) { $phrases[] = $words[$i-1] . " " . $words[$i]; } print_r($phrases); Код (Text): Array ( [0] => раз два [1] => два три [2] => три четы [3] => четы пять ) VItalijs, задание немного не то
ок. PHP: <?php $string = "one two three four five"; $words = explode(" ", $string); //preg_split("/[\s,_|]+/", $string); for ($i=0; $i<count($words); $i++){ if (isset($words[$i]) && isset($words[$i+1])){ $phrases[] = $words[$i]." ".$words[$i+1]; } else if (isset($words[$i])){ // $phrases[] = $words[$i]; } } print_r($phrases); ?> найдите 2 отличия.