По типу explode

Igor25

Новичок
Здравствуйте знатоки.

Как можно реализовать разбиение строки, но с определенным условием?

Пример есть строка:
$str="Наши ложки самые лучшие ложки в мире. Вы еще не видели наши чашки B.15, а также супер чашки ЧАША.1.B и ЧАША. 2.B. Ну что разобрались с нашими чашами? Если да, то ок. Если нет, то посетите наш сайт."

Если сделать $str_ar=explode(".",$str); то он разобьет все по точкам, а как задать условие чтобы короткие слова не разбивались, т.е., B.15 и ЧАША.1.B и ЧАША. 2.B. не разбивались.

Может использовать preg_split, но какое условие надо написать?
 

radioheaded

PHP нуб
Вам вряд ли удастся учесть все возможные варианты. Если текст ваш, то формируйте его соответствующим образом, вставляйте маркеры, например.
 

Xupypr

Новичок
как я понял, надо разбить на предложения. Концом предложения считается точка, но т.к. точки есть еще и при сокращениях, то автор хочет чудо-условие исключающее это. Вообщем уникально - нереально, как высказался предыдущий оратор, нужны хть какие-то уникальные маркеры, позволяющие проследить где резать.
 

ferryman

.............
PHP:
$str="Наши ложки самые лучшие ложки в мире. Вы еще не видели наши чашки B.15, а также супер чашки ЧАША.1.B и ЧАША. 2.B. Ну что разобрались с нашими чашами? Если да, то ок. Если нет, то посетите наш сайт.";

$aString = explode(" ", $str);

foreach($aString as $value) {
    if(substr(strstr($value, "."), 1)) {
        $_aString[] = $value;
    }    
}

var_dump($_aString);
array(3) { [0]=> string(5) "B.15," [1]=> string(12) "ЧАША.1.B" [2]=> string(4) "2.B." }
Это как пример
 
Сверху