подсчет количества пробелов в строке?

Тема в разделе "Решение различных задач по парсингу", создана пользователем Kreol, 10 фев 2014.

  1. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Здравствуйте.
    Подскажите пожалуйста, каким образом можно подсчитывать количество пробелов в текстовой строке и как это можно применять к функциям поиск-замена
    Например:
    ААА ААА ААА ААА (ЕСЛИ 3 пробела) замену делаем на БББ БББ БББ БББ
    ААА ААА ААА (ЕСЛИ 2 пробела) замену делаем на БББ БББ БББ
    ААА ААА (ЕСЛИ 1 пробела) замену делаем на БББ БББ
    ААА (ЕСЛИ 0 пробелов) замену делаем на БББ
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.
    Такой функции нет. Не вижу смысла ее практического применения. Попробуйте привести конкретный пример.
     
  3. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    РАНО МЫЛА МАМА РАМУ => МЫЛА РАМУ УТРОМ МАМА
    МЫЛА РАМУ УТРОМ => УТРОМ МЫЛА РАМУ
    МЫЛА РАМУ => Ранним утром
    МАМА = > Мама

    В итоге нужно получить все 4 вида замен, не зависящих друг от друга.
    Иначе получим:
    УТРОМ Ранним утром Мама
    Я не прощу писать новую функцию, хотя идея с моей точки зрения неплоха.
    Возможно это можно решить через регулярки?
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вам нужно перемешать слова, верно?
     
  5. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    нет, про макрос перемешки я вкурсе.
    Мне нужно чтоб замена происходила только тогда, когда полностью соответствует шаблону. Если есть 3 пробела, то и меняется на строку с 3 пробела, но не с 2-мя и не с 1-м
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    С этим вопросом вам помочь не могу, так как не вижу практического применения данного вопроса.
    Спасибо за обращение!
     
  7. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    вероятнее всего да. скиньте в личку конкретный пример того, что нужно заменить, и на что конкретно.
    предварительно так -
    Код:
    re:(?m)^[^\s\r\n]+\s+[^\s\r\n]+\s+[^\s\r\n]+\s+[^\s\r\n]+$|МАМА МЫЛА РАМУ ДОЛГО
     
    Последнее редактирование: 10 фев 2014

Поделиться этой страницей