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

snifram

A-Parser Enterprise License
A-Parser Enterprise
собственно проблема стоит в следующем:
на входе имеем парсинг данных из различных мест - очень часто бывает так что буква следующего предложения "после точки" идет с маленькой буквы

Пример:
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

то есть каждая буква после точки - если она маленькая заменяется на большую - как это сделать в апарсере?
 
Решается это с помощью шаблонизатора. Алгоритм таков: нужно разобрать строку на предложения (точка с пробелом выступят в качестве разделителя), в каждом заменить первую букву на большую и собрать.
5rtLl.png

Код:
[% 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 %]
 
[% 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 %]

с моими знания в программировании попытаюсь понять:

на сколько я понимаю в переменную % text заносятся данные - с ними и работается в дальнейшем.
[% text = 'ТОГДА ВОТ ТУТ ЧТО?';
 
Нет, это просто для примера. На практике это должна быть переменная содержащая текст.
Вот немного модифицированный пример для HTML::TextExtractor
rDxVn.png


P.S. Документация по Template Toolkit: http://a-parser.com/wiki/template-toolkit/
 
я прочитал всю доку - но так и не понял как это реализовать ... слаб мой навык )))

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

надо что бы по поисковику - например бингу - это работало ...
 
мозг сломал, 2 литра валерьянки выпил пока разобрался )))
[% text = p1.serp.format('$query|$snippet\n');

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

вот этот код подставил в Формат результата и заработало ....
 
Назад
Верх