1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Первая буква каждого слова заглавная.

Тема в разделе "Техническая поддержка", создана пользователем Zlodeys, 18 май 2017.

  1. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Всем привет!
    Подскажите пожалуйста как можно сделать вывод в результат Первую букву первого слова заглавная, остальные строчные. И Первая Буква Каждого Слова Заглавная.
    В Апарсере встроено только To Uppercase и To Lowercase.
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Добрый день.
    На примере текстэкстрактора с помощью шаблонизатора это делается так:
    [​IMG]
    Шаблон:
    Код:
    [% FOREACH item IN texts;
        words = item.text.match('(\S+\W*)', 1);
        FOREACH word IN words;
            word.ucfirst;
        END;
        "\n";
    END %]
    Алгоритм следующий:
    • разбиваем каждый блок текста на слова регулярным выражением, при этом захватываем все символы после слова, которые не являются буквой или цифрой - это делается для того, чтобы сохранить форматирование и учесть ситуации, когда слово идет после скобки к примеру
    • перебираем в цикле все слова и выводим их с .ucfirst (функция ТТ, преобразующая первый символ в заглавный)
    • блоки текста разделем переводом строки
     
    Zlodeys нравится это.
  3. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Спасибо!

    Правда немного не догоняю как переменную ну к примеру $p1.title в NET:HTTP парсере сделать таким образом))
     
    Support нравится это.
  4. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Подскажите пожалуйста, реально не могу понять, https://a-parser.com/wiki/template-toolkit/ пару раз уже прочел...
    Насчет $p1.title в NET:HTTP
    У меня там парсится тайтл. Вот его то и нужно мне форматировать
     
  5. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Цикл уберите, p1.title разбивайте на слова:
    Код:
    [% words = p1.title.match('(\S+\W*)', 1);
    FOREACH word IN words;
       word.ucfirst;
    END %]
     
    Zlodeys нравится это.
  6. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Спасибо Большое! ;) Заработало))
     
    Support нравится это.

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