Здравствуйте. Есть такой код: PHP: $input = 'Word1#, word2-jjj word3- | word4 !word5 jjjjjj-jjjjj - 1 , ку-ку word6|word7,word8 ,word9'; $result = preg_split('~[^а-яА-Яa-zA-Z0-9]+~', $input); foreach ($result as $word) { echo $word.'<br>'; } Проблема в том что например слово "ку-ку" считается разным словом. А если просто добавить "-", то вываливаются все "-" не окруженные текстом.
PHP: <?php $in = "привет всем-всем присутствующим здесь! -хо- -хо хо- -тра-ля-ля-ля-"; $L = "а-яА-Яa-zA-Z0-9"; $re = "/[$L]([-$L]*[$L])?/u"; preg_match_all($re, $in, $fl); print_r($fl[0]); ?> Код (Text): Array ( [0] => привет [1] => всем-всем [2] => присутствующим [3] => здесь [4] => хо [5] => хо [6] => хо [7] => тра-ля-ля-ля )