За последние 24 часа нас посетили 17875 программистов и 1286 роботов. Сейчас ищет 1431 программист ...

Регулярные выражения

Тема в разделе "Регулярные выражения", создана пользователем kit, 2 фев 2007.

  1. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Есть текст в переменной $text, например "один два три четыре". Все слова разделены пробелом. Задача: записать каждое слово из выражения в одтельную переменную. Решил использовать регулярные выражения, пишу:
    PHP:
    1.  
    2. preg_match_all('#(.*?)\s#si',$text,$slovo);
    3. print_r ($slovo[0]);
    4.  
    Результат:
    Array ( [0] => один [1] => два [2] => три )
    "четыре" отсутствует напрочь из-за отсутствия после него пробела. Как изменить выражение, что бы было:
    Array ( [0] => один [1] => два [2] => три [3]=> четыре)

    И еще, может кто сразу подскажет как сделать, чтоб из каждого слова убирались последние 2 или 3 буквы, например:
    Array ( [0] => од [1] => д [2] => т [3]=> четы)
    Надеюсь на скорую помощь! Спасибо!
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    тема переезжает в соответствующий форум.
     
  3. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Не мучайся с регулярками, explode тебе в помощь. Получишь какраз такой же масив как тебе надо:
    PHP:
    1.  
    2. $text = 'один два три четыре';
    3. $array = explode(' ', trim($text));
    4. print_r($array);
    5.  
     
  4. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
  5. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    explode - вещь!!! За регулярки в Барнаул - респект. Все работает - всем спасибо!
     
  6. mclaud

    mclaud Активный пользователь

    С нами с:
    15 фев 2007
    Сообщения:
    97
    Симпатии:
    0
    Адрес:
    Одесса
    Рекомендую
    <?
    $Result=preg_split('/\s+/', $text, -1, PREG_SPLIT_NO_EMPTY);
    print_r($Result);
    ?>