@vladmitroshin

Как найти в тексте слова, начинающиеся с большой буквы, которые стоят в начале и не в начале предложения?

Произвольном тексте необходимо вывести красным цветом все слова, начинающиеся с большой буквы, но не стоящие в начале предложения, а все такие слова, стоящие в начале предложения, подчеркнуть. Как это реализовать с помощью регулярных выражений на PHP?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@Stalinko
PHP'шник и фрилансер до мозга костей
Если принципиально делать через RE, то нужно пользоваться техникой look-ahead.

Составляем регулярку для "слова с большой буквы". С помощью look-ahead проверяем, есть ли перед словом пробел и знак препинания, обозначающий конец предложения (.?!). Если да, то это первое слово в предложении. Либо если это первое слово в тексте (^). Такие слова подчеркиваем.
Если перед словом есть пробел и другое слово или знак, не являющийся концом предложения (-,), то это просто слово с большой буквы - помечаем красным.

Ничего сложного. Писать это всё не буду, напишешь сам с учетом твоих требований.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
На чёткий вопрос - чёткий ответ.
В два этапа.

Сначала разбить текст на предложения.
Затем разбить каждое предложение на слова.

Как именно это делать, зависит от допущений, на которые вы готовы. Например, обязателен ли пробел после точки (между предложениями) и т.д.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы