2013-12-16 2 views
0

мне нужна ваша помощь в моем коде:раскол в сочетании слов с функцией preg_split

$sentence = "Erzurum da hayat çok monoton SANIRIM:d"; 
$words = preg_split('/[\s,.\'\-\[\]]+/', $sentence, -1, PREG_SPLIT_NO_EMPTY); 

этот код разбивает предложение на слова и выход ниже

Array ([Эрзурум] => 1 [да] => 1 [хаять] => 1 [çok] => 1 [Монотон] => 1 [SANIRIM: d] => 1)

Но я хочу, чтобы расколоть ": d" символ в последнем слове Как я могу это сделать?

+0

Вы хотите, чтобы последние записи массива были «[SANIRIM], [: d]» или «[SANIRIM], [:], [d]» или «[SANIRIM], [d]»? – user234461

+0

Я хочу, чтобы последние записи массива были «[SANIRIM], [: d]» – gocen

ответ

0

Используйте положительное опережающее утверждение:

preg_split('/([\s,.\'\-\[\]]+|(?=:))/' 

, что означает «раскол, если следующий символ является „:“». Вы также можете использовать внешний вид, в зависимости от того, на что вы на самом деле собираетесь использовать строку.

+1

спасибо, что это работает – gocen

+0

Нет проблем :): d – user234461

+0

Вероятно, мне также нужно утверждение look-behind. Как я могу изменить код, если смайлик был в начале слова – gocen

Смежные вопросы