Mavrikii
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору yuris ну у вас тут сложности есть.. в использовании дефиса и "и". вероятно можно решить все регуляркой, даже одной, но задумываться не хочется. я дам вам решение, но оно не являются наилучшим или оптимальным. Код: <?php header('Content-Type: text/html; charset=utf-8'); $text =<<<TEST Москва и Московская область Ямало - Ненецкий АО Карачаево - Черкесская Республика Санкт - Петербург и Ленинградская область TEST; $data = explode("\n", $text); foreach($data as $i => $str) { if (preg_match_all('#([\s\-]+\w?[\s\-]*)?(\b|^)\w+(\b|$)#ui', $str, $m)) { $m = array_slice($m[0], 0, 2); $data[$i] = implode('', $m); } } echo nl2br(implode("\n", $data)); |
|