1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Как с помощью регурярного выражения заменить букву в начале предложения

Тема в разделе "Делимся опытом", создана пользователем snifram, 10 мар 2016.

  1. snifram

    snifram A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    29 дек 2015
    Сообщения:
    14
    Симпатии:
    6
    собственно проблема стоит в следующем:
    на входе имеем парсинг данных из различных мест - очень часто бывает так что буква следующего предложения "после точки" идет с маленькой буквы

    Пример:
    If you are preparing a lab report, it may help to have a template to work from. b Report Format. troduction or Background Information

    А нужно что бы было так:
    If you are preparing a lab report, it may help to have a template to work from. B Report Format. Troduction or Background Information

    то есть каждая буква после точки - если она маленькая заменяется на большую - как это сделать в апарсере?
     
  2. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Решается это с помощью шаблонизатора. Алгоритм таков: нужно разобрать строку на предложения (точка с пробелом выступят в качестве разделителя), в каждом заменить первую букву на большую и собрать.
    [​IMG]
    Код:
    [% text = 'If you are preparing a lab report. it may help to have a template to work from. b Report Format. troduction or Background Information';
    
    FOREACH t IN text.split('\. ');
        (loop.count == text.split('\. ').size) ? t.ucfirst _ '.' : t.ucfirst _ '. ';
    END %]
     
  3. snifram

    snifram A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    29 дек 2015
    Сообщения:
    14
    Симпатии:
    6
    с моими знания в программировании попытаюсь понять:

    на сколько я понимаю в переменную % text заносятся данные - с ними и работается в дальнейшем.
    [% text = 'ТОГДА ВОТ ТУТ ЧТО?';
     
  4. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Нет, это просто для примера. На практике это должна быть переменная содержащая текст.
    Вот немного модифицированный пример для HTML::TextExtractor
    [​IMG]

    P.S. Документация по Template Toolkit: http://a-parser.com/wiki/template-toolkit/
     
    Forbidden нравится это.
  5. snifram

    snifram A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    29 дек 2015
    Сообщения:
    14
    Симпатии:
    6
    я прочитал всю доку - но так и не понял как это реализовать ... слаб мой навык )))

    как бы так сделать что бы кто то это реализовал - если нужно по финансам что то стучи в личку

    надо что бы по поисковику - например бингу - это работало ...
     
  6. snifram

    snifram A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    29 дек 2015
    Сообщения:
    14
    Симпатии:
    6
    мозг сломал, 2 литра валерьянки выпил пока разобрался )))
    [% text = p1.serp.format('$query|$snippet\n');

    FOREACH t IN text.split('\. ');
    (loop.count == text.split('\. ').size) ? t.ucfirst _ '.' : t.ucfirst _ '. ';
    END %]

    вот этот код подставил в Формат результата и заработало ....
     
    vipdenya и Support нравится это.

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