Замена строчной буквы на прописную в начале предложения?

Тема в разделе "Решение различных задач по парсингу", создана пользователем goblin2oo8, 26 дек 2013.

  1. goblin2oo8

    goblin2oo8 New Member Пользователи

    Регистрация:
    26 дек 2013
    Сообщения:
    5
    Здравствуйте! Сабж, как реализовать? Есть такой текст:
    Нужно получить такой
    Заранее спасибо!
     
  2. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    1). [REGUPFIRST]блаблабла[/REGUPFIRST] - половинчатое решение

    возможные варианты полной реализации того, что вы написали - 2). макрос REPLACE со списком замены на весь алфавит - скажем, 32 замены типа
    Код:
    . а|. A
    3). гибрид 2-х предыдущих вариантов - скажем, такой -
    Код:
    [FIRST_REPLACE(
    re:^[а-я]|[REGUPFIRST]$&[/REGUPFIRST]
    re:([а-я][\.\?!]\s+)([а-я])|$1[REGUPFIRST]$2[/REGUPFIRST]
    )]первое предложение. Второе предложение. третье предложение.[/FIRST_REPLACE]
    есть еще варианты, но их реализация сложнее третьего примера. а вообще во всей этой схеме самое сложное - корректно определить где находится граница предложения. чтобы стало понятнее - приведу пример "он живет в г. москве". как определить, что г. - это не конец предложения? надо делать дополнительные фильтры, типа условий "не менее 3-х строчных букв и далее точка с пробелом". но это рождает другую проблему - рано или поздно найдется предложение, которое оканчивается на 2 строчных буквы с точкой, т.е. надо искать золотую середину. хотя если не нужен абсолютный чистовик - и парой ошибок в тексте можно пренебречь - это все несущественно. тогда за глаза хватит и примера 3.
     
    Последнее редактирование: 27 дек 2013
  3. goblin2oo8

    goblin2oo8 New Member Пользователи

    Регистрация:
    26 дек 2013
    Сообщения:
    5
    Спасибо nikolas1612
    Парой ошибок можно пренебречь, да и доработать можно, главное от чего оттолкнуться))) Спасибо за оперативный ответ! Позже попробую реализовать, отпишусь
     
  4. goblin2oo8

    goblin2oo8 New Member Пользователи

    Регистрация:
    26 дек 2013
    Сообщения:
    5
    Вот до чего я додумался, хотя мне в принципе этого достаточно. То есть мы просто ищем такой участок в тексте
    . а
    и заменяем все на заглавные, блин, хоть убей не работает((
    Вот код шаблона вывода
    В тестере проверял Ссылки недоступны для гостей
    вроде все правильно захватывает

    Помогите пожалуйста, как реализовать.
     
  5. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Пробуйте так
    Если не сработало значит соблюдать надо порядок выполнения макросов Ссылки недоступны для гостей
     
  6. goblin2oo8

    goblin2oo8 New Member Пользователи

    Регистрация:
    26 дек 2013
    Сообщения:
    5
    [FIRST_REPLACE(|)][/FIRST_REPLACE]
    В этом макросе работает Ваша конструкция, но мне надо это сделать в последню очередь, после всех моих замен до этого... как быть?
     
  7. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    я хез о чем тут дальше идет разговор. я же сказал - 3-й пример решает задачу полностью. зачем изобретать дальше?
    насчет того что first_replace подходит, а все остальное - нет. последовательность макросов в программе - четко фиксированная. если в вашем проекте уже накручено море макросов ДО момента когда надо подправить первые буквы в предложениях - у вас есть 2 пути:

    - полностью переделать свой проект, переместив комплекс своих операций в самое начало процесса. не вариант, правда?

    - разбить задачу на 2 отдельных проекта. возьмите конструкцию под №3 - и сделайте ее отдельным проектом.
    поставьте 2 проекта в планировщике - первый свой - а второй это проект "пост-обработки" уже закаченного контента. и радуетесь жизни.
     
    Последнее редактирование: 27 дек 2013
  8. goblin2oo8

    goblin2oo8 New Member Пользователи

    Регистрация:
    26 дек 2013
    Сообщения:
    5
    Сделал по этому варианту
    . а|. A
    Устраивает более чем. Всем спасибо!
     

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