За последние 24 часа нас посетили 182889 программистов и 2202 робота. Сейчас ищут 1645 программистов ...

Помогите!!! Разделение строки на слова и выражения

Тема в разделе "Регулярные выражения", создана пользователем toxateam, 9 янв 2012.

  1. toxateam

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

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
    Помогите написать регулярку!!!
    Допустим есть такая фраза: Первая "новостная позиция" Вторая "новость в позиции" а также остальные слова
    Задача: разбить на слова, но с условием, чтобы текст в кавычках не разбивался, т.е массив должен выглядеть так:

    • 0. Первая
      1. "новостная позиция" или новостная позиция - желательно первый
      2. Вторая
      3. "новость в позиции"
      4. а также - слово с 1 буквой объединяется, со следующим желательно
      5. остальные
      6. слова

    Для ясности: этой регулярой будет разбиваться поисковый запрос (кавычки могут быть где угодно: в начале, в середине и т.д.), т.е слова в кавычках будут обрабатываться как фраза, а остальные икаться по отдельности, конечно если в условиях поиска не будет указано икать все как фразу, с последним проблем нет, а вот разбить так как указано выше проблема.

    В кавычках вырезаю так \"[^\s]+/m, а дальше не получается - знаний по регулярным выражениям не хватает. :(
     
  2. sanchouss

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

    С нами с:
    23 ноя 2011
    Сообщения:
    5
    Симпатии:
    0
    Код (Text):
    1. $str = 'Первая "новостная позиция" Вторая "новость в позиции" а также остальные слова';
    2. var_dump(str_getcsv($str, ' '));
    (PHP 5 >= 5.3.0)
    http://ru.php.net/manual/ru/function.str-getcsv.php